数据库登录信息找回过程记录

Posted by Zhb on August 1, 2023

数据库登录信息找回过程记录

背景:因系统是很久之前部署的,数据库登录信息已经不记得,服务器上只有加密后的文件,抱试一试的态度,我读了用来加密的shell脚本,找到对应的jar包,反编译后读取到了加密的方法。

今天我们介绍一下这个Java库-Jasypt,全称为Java Simplified Encryption,用于加密解密。

Maven引用jar包如下:

<dependency>
  <groupId>org.jasypt</groupId>
  <artifactId>jasypt</artifactId>
  <version>1.9.3</version>
  <scope>compile</scope>
</dependency>

文本加密举例

文本加密是加密中最经常遇到的需求,如通讯消息、交易流水、账号信息等,这些都是非常敏感的信息,许多场景下都需要加密储存,然后读取展示的时候再解密。Jasypt提供的API非常方便,设置加密的密钥后,就可以加密信息了,代码如下:

import org.jasypt.util.text.BasicTextEncryptor;

public class EaD {

    public static void main(String[] args) {

        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        textEncryptor.setPassword("test");
        //加密信息
        String encryptedusername = textEncryptor.encrypt("admin");
        String encryptedpassword = textEncryptor.encrypt("admin");

        String username = textEncryptor.decrypt("PDFGlYsoNKv+bAkLTkPbmA==");
        String password = textEncryptor.decrypt("IjVb/aOmm04QJzzqSR2OhQ==");

        System.out.println("encryptedusername:" + encryptedusername);
        System.out.println("encryptedpassword:" + encryptedpassword);
        System.out.println("username:" + username);
        System.out.println("password:" + password);


    }
}

代码执行的结果为:


encryptedusername:mbMemn/0HnWXtz6JZCUSIg==
encryptedpassword:cOosGP8FJHDc0lzS3PzQHQ==
username:admin
password:admin
Process finished with exit code 0