简单使用jasypt加密配置文件

      参考资料: http://www.jasypt.org/

        从官网的开发介绍文档中, 可以看出它的功能很多很强大. 这里简单使用它来加密配置文件中的一些隐私内容.  比如数据库的账号密码, 第三方的ak信息等等, 防止外部人员看到配置文件明文密码信息泄露.

操作如下:

  1. 添加依赖

  2. 在配置文件设置加密方式

  3. 获取加密后的字符串

  4. 替换

1. 依赖

<!--配置文件加密-->
        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>1.18</version>
        </dependency>

2. springboot的yml文件中配置密钥

jasypt:                                        
  encryptor:                                   
    password: EbfYkitulv73I2p0mXI50JMXoaxZTKJ7 

3. 获取加密后字符串


@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
public class ApplicationTests {

    @Autowired
    private StringEncryptor encryptor;

    @Test
    public void getPass() {
        
        String username = encryptor.encrypt("root");
        String password = encryptor.encrypt("123456");
        String akId = encryptor.encrypt("xxx");
        String akPwd = encryptor.encrypt("xxx");

        System.out.println("-------");
        System.out.println();

        System.out.println("数据库用户名:"+username);
        System.out.println("数据库密码:"+password);
        System.out.println("短信ak Id:"+akId);
        System.out.println("短信ak 密码:"+akPwd);


        System.out.println();

    }
}

输出得到加密后字符串:

数据库用户名:aoV7QvuF4WQAmJ3XAA==
数据库密码:NmRCf/V7o6H6SUbvopg==
短信ak Id:FEzYN6iSU2FSSU1d28=
短信ak 密码:2QUiD0KxC2XhUTFp==

4. 替换原字段信息

将yml配置文件中原信息修改为上面输出的部分. 但要注意, 要用ENC()将加密后的括起来.

spring:                                     
  datasource:                               
    driver-class-name: com.mysql.jdbc.Driver
    url: ENC(EaVkdnzUbWaE8E9oaUUFl1a6Z+PIsdF
    username: ENC(aoV7QvuF4WQAmJ3XAA==) 
    password: ENC(NmRCf/V7o6H6SUbvopg==) 

5. 启动项目

可以看到启动的日志中的加密信息

若正常启动, 说明加密成功.

 


版权声明:本文为byteArr原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。