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

news2024/9/22 7:35:01

一、拿到 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 串,可以借助工具 https://www.json.cn/ 查看)

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/740041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构初阶--排序1

目录 前言冒泡排序思路代码实现 选择排序思路代码实现 插入排序思路代码实现 希尔排序思路代码实现 堆排序思路向上调整建堆向下调整建堆 代码实现 前言 排序在我们的日常生活中无处不在,比如对若干个学生的期末成绩,可以依据姓氏,学号&…

交易成本模型与Python技术共同促进高频交易的发展走向

高频交易是一种在金融市场中越来越受到关注的交易方式,其具有快速、高效、低风险的特点,可以为投资者带来丰厚的利润。然而,在高频交易中,交易成本往往占据了很大的比例,可以说是一个非常重要的因素。因此,…

辅助驾驶功能开发-功能规范篇(22)-1-L2级辅助驾驶方案功能规范

1. 系统概览 System Overview 1.1 系统架构 各模块描述如下: ADSADS控制器,包括5R1V感知融合算法模块、level0-level2相关功能、控制决策模块、响应执行模块。EPBi制动执行机构,包括主制动和冗余制动,可实现行车和驻车控制。EPS转向执行机构,TJP包含冗余转向,L-TJP不包含…

DynaSLAM代码详解(3) — MaskNet.cc加载Mask R-CNN网络部分

目录 3.1 Mask R-CNN运行 3.2 SegmentDynObject::SegmentDynObject() 3.3 SegmentDynObject::GetSegmentation() 3.1 Mask R-CNN运行 在Examples/RGB-D/rgbd_tum.cc文件开始运行Mask R-CNN网络,首先进入MaskNet->GetSegmentation函数。 // Segment out the i…

使用Dockerfile创建nginx+php镜像,采用分层

什么是Dockerfile Dockerfile是一种能被Docker程序解释的脚本,它是由一条条的命令所组成,每条命令对应Linux下面的一条命令,Docker程序将这些Dockerfile命令翻译成真正的Linux命令 Dockerfile命令 Dockerfile通常会包含如下命令&#xff1a…

【AGC】认证服务HarmonyOS(api9)实现手机号码认证登录

【问题背景】 近期AGC上线了HarmonyOS(api9)平台的SDK,这样api9的设备也能使用认证服务进行快速认证登录了。下面为大家带来如何使用auth SDK(api9)实现手机号码认证登录。 【开通服务】 1.登录AppGallery Connect,点击“我的项…

lc202306

785. 判断二分图 对于单个连通图:一个dfs判断图中所有节点符合二分。 遍历节点列表>遍历所有连通图。 133. clone graph 994. rotting oranges 力扣 维护一个time表,表示所有orange rot的最快时间。对每一个 t0 就 rot 的 orange dfs,遇…

无法从gcr.io获取distroless镜像问题

当我们能够访问外网,且能够ping通gcr.io网站后,依旧无法拉取distroless镜像时,可以通过以下网站作为中转获取。 rootacoinfo-Vostro-3667:/home/xxx/xx# docker pull gcr.io/distroless/base-debian11 Using default tag: latest Error resp…

快速制作优惠券信息展示小程序教程

要想拥有一个拥有优惠券功能的小程序商城,首先我们需要搭建一个小程序。以乔拓云第三方平台为例,我们可以通过以下步骤来完成。 首先,登录乔拓云平台,进入【乔拓云】后台管理页面。乔拓云功能强大,不仅可以搭建小程序…

运维开发面试题第五期(华电天益)

1、一个目录(没有子目录)有很多文件,想最快速度查看到最近更新的文件你有几种方式实现?请写出一种或几种 ls -lrt 目录 R 逆序 l 长格式 t 按更新时间排序2、使用 tar 命令打包/etc 目录下的所有文件(包括子文件夹) tar -cvf 打包路径加名字 /etc/ 仅打包…

[gtp]购物车案例参考

react hooks,购物车案例. 在列表上点击或者-更新数量,调用接口更新单个价格. 点击table的checkbox勾选后,计算总价? 对于React Hooks和购物车案例,您可以使用useState来管理列表中商品的数量和总价。当点击"“或”-"按钮时,可以更新相应商品…

网络营销的定义、实现方式、关键要素和应用案例

网络营销是通过互联网及相关技术手段来实现企业品牌推广、产品销售、客户维护等目标的营销方式。近年来,随着互联网技术的飞速发展,网络营销已成为企业推广、销售和宣传的重要手段。本文将从网络营销的定义、实现方式、关键要素和应用案例等方面&#xf…

【ECharts系列】ECharts 图表渲染问题解决方案

1 问题描述 echats 渲染,第一次的时候只出现Y轴数值,不出现X轴数值,切换下页面,X轴数值就能出现。 2 原因分析 如果在使用ECharts渲染时,X轴数值只在切换页面后才出现,可能是因为ECharts在初始化时没有正确…

Mac上提取应用APP的LOGO

1、找到想提取LOGO的应用,右键「显示包内容」 2、 双击【Contents】文件夹,再双击【Resources】文件夹 3、双击图标打开,选择最清晰的一帧,右键【导出为】 4、选择保存位置,格式注意选择常见格式,如png

【Ajax】Express 服务端框架

因为Ajax需要向服务端发送请求。Express框架比较简单,内容使用起来比较少,借助一个基本功能就可以了。 Express 基于 Node.js 平台,快速、开放、极简的 Web 开发框架 所以需要安装一下node.js 检查命名:node -v 安装 打开项目最外…

多线程面试题详解

总体概览 线程的基础知识 线程和进程的区别? 并行和并发有什么区别? 创建线程的方式有哪些? runable和callable有什么区别 run()和start()有什么区别 线程包括了那些状态?这些状态之间如何变化 新建T1,T2,T3三个线程,如…

C#内存不够解决方法

今天在使用C#程序的时候,出现了下图的问题: 注意下图中我用红框标出的位置,实际是一个三维数组。 但是出现这个问题和三维数组没有关系。 他是提示内存不足。 百度了一下,C#在生成的过程中如果是生成对应的32位系统&#xff0c…

VMware15.5版本虚拟机安装Linux Centos 7系统详细步骤

1.首先准备好Centos7.6安装文件,安装文件可百度搜索或在阿里镜像站中下载。 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 2.新建虚拟机. 1选择自定义,点下一步。 2硬件兼容性选择15.x,,点下一步。 3选择稍后安装操作系统&…

自定义seg_decoder组件并创建Nios系统(一)

前面进行了数码管的显示 对Avalon总线协议进行了大概的学习 那么就可以 将数码管译码器模块封装成符合Avalon-MM接口的组件创建一个基于Nios Ⅱ处理器的系统 将数码管译码器组件添加至该系统中 通过用户应用程序控制数码管显示字符0~F 本文同数码管显示一样并不是完整项目&a…

JavaWeb_瑞吉外卖_项目优化Day12-前后端分离

JavaWeb_瑞吉外卖_项目优化Day12-前后端分离 前后端分离开发介绍开发流程前端技术栈 YapiSwagger介绍使用方式常用注解 项目部署部署架构部署环境说明部署前端项目部署后端项目 来源 前后端分离开发 介绍 开发流程 前端技术栈 开发工具 Visual Studio Codehbuilder 技术框架 …