当前位置: 首页 > 图灵资讯 > 技术篇> 使用Jasypt对SpringBoot配置文件加密

使用Jasypt对SpringBoot配置文件加密

来源:图灵教育
时间:2023-06-14 09:40:43

引入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");}

使用Jasypt对SpringBoot配置文件加密_jar

类图

部署时配置密钥值

为防止密钥泄露,反解密码。在项目部署时,可以使用命令将密钥值传输到密钥值

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