如何找回存儲(chǔ)在DBeaver連接中數(shù)據(jù)庫(kù)密碼
一、拿到 credentials-config.json 文件
1、打開(kāi) Dbeaver 后,點(diǎn)擊 “窗口 — 首選項(xiàng)”
2、找到worksapce path
3、進(jìn)入 workspace path 的文件夾,再進(jìn)入到 \General.dbeaver 文件夾,找到文件 credentials-config.json (可以備份一下這個(gè)文件,萬(wàn)一不小心改了內(nèi)容)。
二、對(duì) credentials-config.json 文件解碼
1、方法一:
如果你有安裝 ubuntu、centos 等這些 linux 操作系統(tǒng),并且系統(tǒng)上安裝了 openssl,則可以使用 openssl 對(duì)credentials-config.json文件解碼(以 centos 系統(tǒng)為例):
(1)先把文件復(fù)制到 centos 系統(tǒng)某個(gè)目錄下
(2)還是在這個(gè)目錄下,使用如下命令
openssl aes-128-cbc -d \ -K babb4a9f774ab853c96c2d653dfe544a \ -iv 00000000000000000000000000000000 \ -in credentials-config.json | \ dd bs=1 skip=16 2>/dev/null
(3)命令執(zhí)行后,就得到解碼后的json字符串(為了方便查看 json 串,可以借助工具 http://tools.jb51.net/code/json 查看)
2、方法二:
如果沒(méi)有 linux 系統(tǒng)和 openssl ,可以用 windows 系統(tǒng)和 java
(1)在某個(gè)文件夾新建文件 DefaultValueEncryptor.txt ,把下面這段代碼粘貼進(jìn)去保存。
import javax.crypto.Cipher; import javax.crypto.CipherInputStream; import javax.crypto.SecretKey; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Paths; public class DefaultValueEncryptor { public static final String CIPHER_NAME = "AES/CBC/PKCS5Padding"; public static final String KEY_ALGORITHM = "AES"; private final SecretKey secretKey; private final Cipher cipher; public DefaultValueEncryptor(SecretKey secretKey) { this.secretKey = secretKey; try { this.cipher = Cipher.getInstance(CIPHER_NAME); } catch (Exception e) { System.out.println("Internal error during encrypted init" + e); throw new RuntimeException(e); } } public byte[] decryptValue(byte[] value) { try (InputStream byteStream = new ByteArrayInputStream(value)) { byte[] fileIv = new byte[16]; byteStream.read(fileIv); cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(fileIv)); try (CipherInputStream cipherIn = new CipherInputStream(byteStream, cipher)) { ByteArrayOutputStream resultBuffer = new ByteArrayOutputStream(); int bufferSize = 100; byte[] buffer = new byte[bufferSize]; while ((bufferSize = cipherIn.read(buffer)) != -1) { resultBuffer.write(buffer, 0,bufferSize); } return resultBuffer.toByteArray(); } } catch (Exception e) { System.out.println("Error decrypting value" + e); throw new RuntimeException(e); } } public static void main(String[] args) throws Exception { if (args.length != 1) { System.err.println("plese input param1: full path to your credentials-config.json file"); System.exit(1); } final byte[] LOCAL_KEY_CACHE = new byte[]{-70, -69, 74, -97, 119, 74, -72, 83, -55, 108, 45, 101, 61, -2, 84, 74}; SecretKey aes = new SecretKeySpec(LOCAL_KEY_CACHE, KEY_ALGORITHM); DefaultValueEncryptor encryptor = new DefaultValueEncryptor(aes); byte[] credentialsConfigBytesSecret = Files.readAllBytes(Paths.get(args[0])); byte[] credentialsConfigBytesPlain = encryptor.decryptValue(credentialsConfigBytesSecret); System.out.println(new String(credentialsConfigBytesPlain)); } }
(2)然后再把文件名的后綴從 .txt 改為 .java ,并把之前的 credentials-config.json 文件也復(fù)制到同個(gè)目錄下。
(3)cmd 命令行進(jìn)入到該目錄,然后依次執(zhí)行命令 ,即可。
javac DefaultValueEncryptor.java java DefaultValueEncryptor credentials-config.json
總結(jié)
到此這篇關(guān)于如何找回存儲(chǔ)在DBeaver連接中數(shù)據(jù)庫(kù)密碼的文章就介紹到這了,更多相關(guān)找回DBeaver數(shù)據(jù)庫(kù)密碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL注入篇學(xué)習(xí)之盲注/寬字節(jié)注入
盲注是注入的一種,指的是在不知道數(shù)據(jù)庫(kù)返回值的情況下對(duì)數(shù)據(jù)中的內(nèi)容進(jìn)行猜測(cè),實(shí)施SQL注入,下面這篇文章主要給大家介紹了關(guān)于SQL注入篇之盲注/寬字節(jié)注入的相關(guān)資料,需要的朋友可以參考下2022-03-03一篇文章帶你了解數(shù)據(jù)庫(kù)中g(shù)roup by的用法
這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫(kù)中g(shù)roup by的法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用數(shù)據(jù)庫(kù)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04SQL中NTEXT字段內(nèi)容顯示<long text>的原因
SQL中NTEXT字段內(nèi)容顯示<long text>的原因...2007-03-03ms SQL server數(shù)據(jù)庫(kù)備份、壓縮與SQL數(shù)據(jù)庫(kù)數(shù)據(jù)處理的方法
ms SQL server數(shù)據(jù)庫(kù)備份、壓縮與SQL數(shù)據(jù)庫(kù)數(shù)據(jù)處理的方法...2007-07-07一篇文章教會(huì)你使用gs_restore導(dǎo)入數(shù)據(jù)
gs_restore是GaussDB(DWS)提供的針對(duì)gs_dump導(dǎo)出數(shù)據(jù)的導(dǎo)入工具,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)一篇文章教會(huì)你使用gs_restore導(dǎo)入數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-09-09dbeaver導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)圖文教程(sql文件形式)
這篇文章主要介紹了如何使用DBeaver復(fù)制數(shù)據(jù)庫(kù),在導(dǎo)出和導(dǎo)入數(shù)據(jù)庫(kù)時(shí),需要注意編碼一致性,以避免導(dǎo)入錯(cuò)誤,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-02-02建立在Tablestore的Wifi設(shè)備監(jiān)管系統(tǒng)架構(gòu)實(shí)現(xiàn)
一般大公司會(huì)有許多園區(qū),園區(qū)內(nèi)會(huì)有不同部門(mén)的同事在一起辦公。每個(gè)園區(qū)內(nèi)都要配備大量的Wifi設(shè)備從而為園區(qū)同事提供方便的上網(wǎng)服務(wù)。因此,集團(tuán)需要一套完善的監(jiān)管系統(tǒng)維護(hù)所有的Wifi設(shè)備。需要的朋友來(lái)一起學(xué)習(xí)下吧2019-05-05