SpringBoot整合jasypt实现配置文件加密

一. 概述

在企业项目,配置文件通常保存着各种明文密码, 这种直接明文的做法可能就有点草率,不够安全. 本DEMO整合jasypt简单实现配置文件属性加密, 具体详细可以看jasypt官网

二. SpringBootDemo

2.1 依赖

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

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

2.2 获取属性加密值

HelloWorld加密

@RunWith(SpringRunner.class)
@SpringBootTest
public class PasswordTest {
    @Autowired
    private StringEncryptor encryptor;

    /**
     * 生成加密密码
     */
    @Test
    public void testGeneratePassword() {
        // 你的邮箱密码
        String password = "HelloWorld";
        // 加密后的密码(注意:配置上去的时候需要加 ENC(加密密码))
        String encryptPassword = encryptor.encrypt(password);
        String decryptPassword = encryptor.decrypt(encryptPassword);

        System.out.println("password = " + password);
        System.out.println("encryptPassword = " + encryptPassword);
        System.out.println("decryptPassword = " + decryptPassword);
    }
}

运行结果

password = HelloWorld
encryptPassword = nWwBNED1eKH2sZouKA0W71S6U5lggLI8
decryptPassword = HelloWorld

2.3 yml配置

demo:
  # 格式 ENC(加密密码)
  value: ENC(nWwBNED1eKH2sZouKA0W71S6U5lggLI8)
# 为 jasypt 配置解密秘钥
jasypt:
  encryptor:
    password: wpr

2.4 测试

    @Value("${demo.value}")
    public String password;

    @Test
    public void testValue(){
        System.out.println("密码值为:"+password);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容