用Jasypt对SpringBoot配置文件加密

作者 : 开心源码 本文共1999个字,预计阅读时间需要5分钟 发布时间: 2022-05-11 共76人阅读

引入jasypt

<dependency>    <groupId>com.github.ulisesbocchio</groupId>    <artifactId>jasypt-spring-boot-starter</artifactId>    <version>2.0.0</version></dependency>

生成要加密的字符串

将数据库的使用户名和密码进行加密

    public static void main(String[] args) {        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();        //加密所需的salt(盐)        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中

# 加密所需的salt(盐)jasypt.encryptor.password=G0CvDz7oJn6# 默认加密方式PBEWithMD5AndDES,能更改为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");}

类图

部署时配置salt(盐)值

为了防止salt(盐)泄露,反解出密码.能在项目部署的时候用命令传入salt(盐)值

java -jar -Djasypt.encryptor.password=G0CvDz7oJn6 xxx.jar

或者者在服务器的环境变量里配置,进一步提高安全性

打开/etc/profile文件vim /etc/profile文件末尾插入export JASYPT_PASSWORD = G0CvDz7oJn6编译 source /etc/profile运行 java -jar -Djasypt.encryptor.password=${JASYPT_PASSWORD} xxx.jar

官方地址 : ulisesbocchio/jasypt-spring-boot

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 用Jasypt对SpringBoot配置文件加密

发表回复