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

 更新时间:2024年03月27日 09:09:36   作者:秦玥楼兰  
DBeaver数据库连接工具是我用了这么久最好用的一个数据库连接工具,拥有的优点,支持的数据库多、快捷键很赞、导入导出数据非常方便,这篇文章主要给大家介绍了关于如何找回存储在DBeaver连接中数据库密码的相关资料,需要的朋友可以参考下

一、拿到 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)还是在这个目录下,使用如下命令

openssl aes-128-cbc -d \
  -K babb4a9f774ab853c96c2d653dfe544a \
  -iv 00000000000000000000000000000000 \
  -in credentials-config.json | \
  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 ,把下面这段代码粘贴进去保存。

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 文件也复制到同个目录下。

在这里插入图片描述

(3)cmd 命令行进入到该目录,然后依次执行命令 ,即可。

javac DefaultValueEncryptor.java
java DefaultValueEncryptor credentials-config.json

在这里插入图片描述

总结

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

相关文章

  • SQL注入篇学习之盲注/宽字节注入

    SQL注入篇学习之盲注/宽字节注入

    盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入,下面这篇文章主要给大家介绍了关于SQL注入篇之盲注/宽字节注入的相关资料,需要的朋友可以参考下
    2022-03-03
  • 一篇文章带你了解数据库中group by的用法

    一篇文章带你了解数据库中group by的用法

    这篇文章主要给大家介绍了关于数据库中group by的法的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用数据库具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • SQL中NTEXT字段内容显示<long text>的原因

    SQL中NTEXT字段内容显示<long text>的原因

    SQL中NTEXT字段内容显示<long text>的原因...
    2007-03-03
  • Navicat打开表的速度慢的问题解决

    Navicat打开表的速度慢的问题解决

    最近使用Navicat打开表或者设计表都很慢,需要等十几秒才能打开,一开始我以为是我电脑老了,没想到新电脑打开也很慢,所以本就给大家分享一下Navicat打开表的速度慢的问题解决方法,需要的朋友可以参考下
    2023-12-12
  • ms SQL server数据库备份、压缩与SQL数据库数据处理的方法

    ms SQL server数据库备份、压缩与SQL数据库数据处理的方法

    ms SQL server数据库备份、压缩与SQL数据库数据处理的方法...
    2007-07-07
  • 安装navicat最新详细流程

    安装navicat最新详细流程

    Navicat是一款独立的数据库管理工具,支持多种数据库管理系统,包括MySQL、MariaDB、Oracle、PostgreSQL、SQLite等,下面这篇文章主要给大家介绍了关于安装navicat最新详细流程,需要的朋友可以参考下
    2023-06-06
  • Navicat中修改MySQL的编码格式

    Navicat中修改MySQL的编码格式

    打开 Navicat for MySQL 并连接到您的数据库服务器,在左侧的连接列表中,展开数据库,然后展开要更改字符集的表,选中要更改字符集的表,右键点击并选择 "设计表",在 "设计表" 窗口中,您将看到表的列表
    2023-10-10
  • 一篇文章教会你使用gs_restore导入数据

    一篇文章教会你使用gs_restore导入数据

    gs_restore是GaussDB(DWS)提供的针对gs_dump导出数据的导入工具,下面这篇文章主要给大家介绍了关于如何通过一篇文章教会你使用gs_restore导入数据的相关资料,需要的朋友可以参考下
    2022-09-09
  • dbeaver导入导出数据库图文教程(sql文件形式)

    dbeaver导入导出数据库图文教程(sql文件形式)

    这篇文章主要介绍了如何使用DBeaver复制数据库,在导出和导入数据库时,需要注意编码一致性,以避免导入错误,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • 建立在Tablestore的Wifi设备监管系统架构实现

    建立在Tablestore的Wifi设备监管系统架构实现

    一般大公司会有许多园区,园区内会有不同部门的同事在一起办公。每个园区内都要配备大量的Wifi设备从而为园区同事提供方便的上网服务。因此,集团需要一套完善的监管系统维护所有的Wifi设备。需要的朋友来一起学习下吧
    2019-05-05

最新评论