使用jasypt 进行配置文件加密

项目中application.yml 配置文件的各种链接的username,password的值都是明文的,其实存在一定的安全隐患,这是可以使用jasypt 的方式进行明文加密,
需要注意的是 盐值和密文分开保存
参考学习-1
参考学习-2

下面实现最简单的配置
项目是springboot 框架
1.应用pom 文件

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

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

2.yml 配置中添加 jasypt的盐值

盐值用来加解密的,但是配置再这里明显是不合适的,因为知道了盐值,也就可以加解密了,相当于没有使用jasypt,参考这篇文章: jasypt加密 的方式 把盐值和密文分开保存

jasypt:
  encryptor:
    password: 123456789

3.使用jasypt 类加密明文
直接使用test生成密文是其中一种方式,其它方式 参考 参考这篇文章: jasypt加密

@Test
 @Test
    public void test(){
        StandardPBEStringEncryptor standardPBEStringEncryptor = new StandardPBEStringEncryptor();
        //盐值
        standardPBEStringEncryptor.setPassword("Saltvalue");
        //加密明文
        String code = standardPBEStringEncryptor.encrypt("加密密文");
        //第二次test,解密第一次test的密文
        System.out.println(standardPBEStringEncryptor.decrypt("uiqiG5IN/zZLExCSfnemxGZrIG9kStej"));
        System.out.println("code=" + code);
    }

4.将生成的code配置到yml

test:
  code: ENC(CBkS9ftxXVcLlg41W5+e+yHLPl8cSyzL)

5.使用加密后的值

@value("${test.code}")
String code;

2022-01-26 更新------------------------------------

盐值和密文分开存储

之前是把盐值存储在配置文件实际上是否加密都成了问题了

盐值应该放在系统属性、命令行或是环境变量来使用

war包和jar包 两种方式是项目中实际用到的, 其它的参考

war包的项目

配置在tomcat 的配置文件 tomat/bin/Catalina.sh 的JAVA_OPTS值中 -Djasypt.encryptor.password=${salt}
启动tomcat 即可

jar包的项目

添加在start.sh 启动脚本中

java -jar xxx.jar --jasypt.encryptor.password=${salt} 

执行脚本即可

在这里插入图片描述

war 包项目部署到tomcat 配置jasypt

实际就是tomcat的启动参数配置
到Tomcat的bin目录下,打开文件catalina.sh 添加jasypt.encryptor.password=“${salt} ”

https://blog.csdn.net/m0_59092234/article/details/124079663

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值