使用jasypt 进行配置文件加密

2年前 (2022) 程序员胖胖胖虎阿
288 0 0

项目中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: ENN(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} 

执行脚本即可

使用jasypt 进行配置文件加密

war 包项目部署到tomcat 配置jasypt

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

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

版权声明:程序员胖胖胖虎阿 发表于 2022年9月9日 下午9:16。
转载请注明:使用jasypt 进行配置文件加密 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...