数据库登录信息找回过程记录
背景:因系统是很久之前部署的,数据库登录信息已经不记得,服务器上只有加密后的文件,抱试一试的态度,我读了用来加密的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