简单使用jasypt加密配置文件

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

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

操作如下:

  1. 添加依赖

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

  3. 获取加密后的字符串

  4. 替换

1. 依赖


        
            com.github.ulisesbocchio
            jasypt-spring-boot-starter
            1.18
        

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. 启动项目

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

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

 

你可能感兴趣的:(SpringBoot)