目录

今日说码

点滴记录中国代码进程

X

使用 jasypt 加密配置

前言

  项目的配置文件中数据库密码以及redis密码是明文形式,要求改造成密文,网上查了一下,决定使用jasypt进行加密改造,记录一下改造过程。

正文

  1. pom文件中引入jar包,附上项目地址ulisesbocchio/jasypt-spring-boot: Jasypt integration for Spring boot (github.com),版本可自行更换。

    <!-- jasypt加密jar -->
    <dependency>
        <groupId>com.github.ulisesbocchio</groupId>
        <artifactId>jasypt-spring-boot-starter</artifactId>
        <version>2.1.2</version>
    </dependency>
    
  2. 配置文件中添加密钥配置。

    jasypt.encryptor.password=XXX
    
  3. 对明文密码进行加密,获取密文字符串,jasypt默认使用StringEncryptor来进行加解密,我们也可以自定义自己的加解密类来替换它,具体使用可自行百度。

    @Autowired
    private StringEncryptor stringEncryptor;
    
    @Test
    public void encrypt() {
        System.out.println(stringEncryptor.encrypt("password"));
    }
    
  4. 修改配置文件中密码,格式为ENC(密文),如:

    spring.datasource.password=ENC(OJkStvw+GLtKyErZNQBtKNeXCHCFQs5X)
    

  到此为止加密改造已经实现了,改动量并不大,还是非常简单的。jasypt除了最基本的密钥配置,还有其他的一些配置,这些配置没有的话会使用默认的值,这些配置参数的意义可自行百度。在启动项目时观察日志可以看到,如果没有特殊要求,使用默认即可。
image.png

注:1.加密时,多次加密结果会变化,均可使用,无需在意。
  2.密钥放在配置文件中可能会被泄露,生产环境建议使用启动参数的形式传入密钥。
  3.非springboot项目使用此jar包也可以实现,具体使用可自行百度。


标题:使用 jasypt 加密配置
作者:96XL
地址:https://solo.96xl.top/articles/2021/11/10/1636533760886.html