引入jasypt
<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.4</version></dependency>
生成要加密的字符串加密数据库的用户名和密码
public static void main(String[] args) { BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); ///加密所需的密钥 textEncryptor.setPassword(G0Cvdz7oJn6); ///加密数据(数据库的用户名或密码) String username = textEncryptor.encrypt("root"); String password = textEncryptor.encrypt(root123); System.out.println("username:"+username); System.out.println("password:"+password); }
输出信息为:
username:I8Qgen4uoy2E1rHzrpSTYA==password:6eamh/RX5oXUVca9ignvtg==
或者用Maven下载的jar包加密\Maven\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI password=G0CVDz7oJn6 algorithm=PBEWithMD5AndDES input=root
输出信息为:
----ENVIRONMENT-----------------Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.171-b11----ARGUMENTS-------------------input: rootalgorithm: PBEWithMD5AndDESpassword: G0CVDz7oJn6----OUTPUT----------------------Gvkoz+sbfwire3Ectizv1A==
拷贝-OUTPUT-下面的结果就够了
properties文件配置ENC(加密串)将生成的加密串配置到application.properties
# 加密所需的密钥jasypt.encryptor.password=G0CVDz7oJn6# PBEWithMD5Andes默认加密方法。PBEWithMD5Andtripledes可以更改# jasypt.encryptor.algorithm=PBEWithMD5AndDESspring.datasource.username=ENC(6eamh/RX5oXUVca9ignvtg==)spring.datasource.password=ENC(6eamh/RX5oXUVca9ignvtg==)
Basictextencryptor和strongtextencryptor对应的加密方法
public BasicTextEncryptor() { super(); this.encryptor = new StandardPBEStringEncryptor(); this.encryptor.setAlgorithm(”PBEWithMD5AndDES");}public StrongTextEncryptor() { super(); this.encryptor = new StandardPBEStringEncryptor(); this.encryptor.setAlgorithm(”PBEWithMD5AndTripleDES");}
部署时配置密钥值为防止密钥泄露,反解密码。在项目部署时,可以使用命令将密钥值传输到密钥值
java -jar -Djasypt.encryptor.password=G0CVDz7oJn6 xxx.jar
或在服务器的环境变量中配置,以进一步提高安全性
打开/etcvimm/profile文件 /etc/将export插入profile文件末尾 JASYPT_PASSWORD = 编译G0Cvdz7oJn6 source /etc/profile运行 java -jar -Djasypt.encryptor.password=${JASYPT_PASSWORD} xxx.jar
官方地址 : https://github.com/ulisesbocchio/jasypt-spring-boot