• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    如何找回存储在DBeaver连接中数据库密码

    发布者: 皮3591 | 发布时间: 2025-6-20 09:09| 查看数: 63| 评论数: 0|帖子模式

    一、拿到 credentials-config.json 文件

    1、打开 Dbeaver 后,点击 “窗口 — 首选项”

    2、找到worksapce path

    3、进入 workspace path 的文件夹,再进入到 \General.dbeaver 文件夹,找到文件 credentials-config.json (可以备份一下这个文件,万一不小心改了内容)。


    二、对 credentials-config.json 文件解码


    1、方法一:

    如果你有安装 ubuntu、centos 等这些 linux 操作系统,并且系统上安装了 openssl,则可以使用 openssl 对credentials-config.json文件解码(以 centos 系统为例):
    (1)先把文件复制到 centos 系统某个目录下

    (2)还是在这个目录下,使用如下命令
    1. openssl aes-128-cbc -d \
    2.   -K babb4a9f774ab853c96c2d653dfe544a \
    3.   -iv 00000000000000000000000000000000 \
    4.   -in credentials-config.json | \
    5.   dd bs=1 skip=16 2>/dev/null
    复制代码

    (3)命令执行后,就得到解码后的json字符串(为了方便查看 json 串,可以借助工具 http://tools.jb51.net/code/json 查看)

    2、方法二:

    如果没有 linux 系统和 openssl ,可以用 windows 系统和 java
    (1)在某个文件夹新建文件 DefaultValueEncryptor.txt ,把下面这段代码粘贴进去保存。
    1. import javax.crypto.Cipher;
    2. import javax.crypto.CipherInputStream;
    3. import javax.crypto.SecretKey;
    4. import javax.crypto.spec.IvParameterSpec;
    5. import javax.crypto.spec.SecretKeySpec;
    6. import java.io.ByteArrayInputStream;
    7. import java.io.ByteArrayOutputStream;
    8. import java.io.InputStream;
    9. import java.nio.file.Files;
    10. import java.nio.file.Paths;

    11. public class DefaultValueEncryptor {

    12.     public static final String CIPHER_NAME = "AES/CBC/PKCS5Padding";
    13.     public static final String KEY_ALGORITHM = "AES";

    14.     private final SecretKey secretKey;
    15.     private final Cipher cipher;

    16.     public DefaultValueEncryptor(SecretKey secretKey) {
    17.         this.secretKey = secretKey;
    18.         try {
    19.             this.cipher = Cipher.getInstance(CIPHER_NAME);
    20.         } catch (Exception e) {
    21.             System.out.println("Internal error during encrypted init" + e);
    22.             throw new RuntimeException(e);
    23.         }
    24.     }


    25.     public byte[] decryptValue(byte[] value) {
    26.         try (InputStream byteStream = new ByteArrayInputStream(value)) {
    27.             byte[] fileIv = new byte[16];
    28.             byteStream.read(fileIv);
    29.             cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(fileIv));
    30.             try (CipherInputStream cipherIn = new CipherInputStream(byteStream, cipher)) {
    31.                 ByteArrayOutputStream resultBuffer = new ByteArrayOutputStream();
    32.                 int bufferSize = 100;
    33.                 byte[] buffer = new byte[bufferSize];
    34.                 while ((bufferSize = cipherIn.read(buffer)) != -1) {
    35.                     resultBuffer.write(buffer, 0,bufferSize);
    36.                 }
    37.                 return resultBuffer.toByteArray();
    38.             }

    39.         } catch (Exception e) {
    40.             System.out.println("Error decrypting value" + e);
    41.             throw new RuntimeException(e);
    42.         }
    43.     }

    44.     public static void main(String[] args) throws Exception {
    45.         if (args.length != 1) {
    46.             System.err.println("plese input param1: full path to your credentials-config.json file");
    47.             System.exit(1);
    48.         }

    49.         final byte[] LOCAL_KEY_CACHE = new byte[]{-70, -69, 74, -97, 119, 74, -72, 83, -55, 108, 45, 101, 61, -2, 84, 74};
    50.         SecretKey aes = new SecretKeySpec(LOCAL_KEY_CACHE, KEY_ALGORITHM);
    51.         DefaultValueEncryptor encryptor = new DefaultValueEncryptor(aes);
    52.         byte[] credentialsConfigBytesSecret = Files.readAllBytes(Paths.get(args[0]));
    53.         byte[] credentialsConfigBytesPlain = encryptor.decryptValue(credentialsConfigBytesSecret);
    54.         System.out.println(new String(credentialsConfigBytesPlain));
    55.     }
    56. }
    复制代码
    (2)然后再把文件名的后缀从 .txt 改为 .java ,并把之前的 credentials-config.json 文件也复制到同个目录下。

    (3)cmd 命令行进入到该目录,然后依次执行命令 ,即可。
    1. javac DefaultValueEncryptor.java
    2. java DefaultValueEncryptor credentials-config.json
    复制代码


    总结

    到此这篇关于如何找回存储在DBeaver连接中数据库密码的文章就介绍到这了,更多相关找回DBeaver数据库密码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    来源:https://www.jb51.net/database/318659ocv.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表