Spring Boot 配置 - 配置信息加密

2019-10-31 16:06:47来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Spring Boot 配置 - 配置信息加密

? Spring Boot 依赖与配置

Maven 依赖

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

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

? 使用说明

假设有配置项 com.anoyi.custom.name=anoyi 不能明文显示,则可以使用 jasyptPBEWithMD5AndDES 算法加密算法进行如下配置:

com.anoyi.custom.name=ENC(TqrnYZn55aFVwnSo2TrbFA==)
jasypt.encryptor.password=anoyi
  • jasypt.encryptor.password 为自定义值,用此密码加密的明文,需要用此密码解密密文
  • ENC(...)jasypt 提供的加密标识,Spring Boot 服务启动时,加载各种 properties 时会依据此标识判断是否解密赋值,可自定义
  • TqrnYZn55aFVwnSo2TrbFA== 为明文字符串 anoyi 通过密码 anoyi 加密后得到的值,此值不唯一,即同一明文通过同一密码加密会得到不同的值

? 配置说明

基于 Password 的加密配置

参数 必填 默认值
jasypt.encryptor.password True -
jasypt.encryptor.algorithm False PBEWithMD5AndDES
jasypt.encryptor.keyObtentionIterations False 1000
jasypt.encryptor.poolSize False 1
jasypt.encryptor.providerName False SunJCE
jasypt.encryptor.providerClassName False null
jasypt.encryptor.saltGeneratorClassname False org.jasypt.salt.RandomSaltGenerator
jasypt.encryptor.ivGeneratorClassname False org.jasypt.salt.NoOpIVGenerator
jasypt.encryptor.stringOutputType False base64
jasypt.encryptor.proxyPropertySources False false

最新版的 jasypt 还支持非对称加密、自定义加密器等等功能,更多信息:

MORE :https://github.com/ulisesbocchio/jasypt-spring-boot

? 配置参数加解密

添加依赖

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

示例加解密字符串 anoyi

@RunWith(SpringRunner.class)
@SpringBootTest
public class EncryptTest {

    @Autowired
    private StringEncryptor jasyptStringEncryptor;

    @Test
    public void encrypt() {
        String encryptStr = jasyptStringEncryptor.encrypt("anoyi");
        System.out.println(encryptStr);
    }

    @Test
    public void decrypt() {
        String encryptStr = jasyptStringEncryptor.decrypt("TqrnYZn55aFVwnSo2TrbFA==");
        System.out.println(encryptStr);
    }

}

? Github Demo URL

  • https://github.com/ChinaSilence/spring-boot-demos/tree/master/05%20-%20config%20encrypt

? 著作权归作者所有,转载或内容合作请联系作者

img

● 拒绝黑盒应用-Spring Boot 应用可视化监控

● 并发Bug之源有三,请睁大眼睛看清它们

● 史上最轻松入门之Spring Batch - 轻量级批处理框架实践

● Spring Cloud Gateway - 快速开始

● APM工具寻找了一圈,发现SkyWalking才是我的真爱

● Spring Boot 注入外部配置到应用内部的静态变量

● 将 HTML 转化为 PDF新姿势

● Java 使用 UnixSocket 调用 Docker API

● Fastjson致命缺陷

● Service Mesh - gRPC 本地联调远程服务

● 使用 Thymeleaf 动态渲染 HTML

原文链接:https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247486183&idx=2&sn=1775e7b90b34738552201679e0860879&chksm=fb3f131ccc489a0a294d6f415922e436cb06c263680c62d7e55fa26e54b482e853abbd0756c3&token=1168253104&lang=zh_CN#rd

本文由博客一文多发平台 OpenWrite 发布!


原文链接:https://www.cnblogs.com/springforall/p/11774005.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Spring Boot 异常处理

下一篇:支持一键生成项目了