SpringBoot配合Jasypt实现配置项加密

对于SpringBoot中的重要配置项,如数据库密码等,需要进行密码加密,避免安全问题的发生,可以配合Jasypt实现配置项加密。

首先搭建一个最基础的SpringBoot工程,这个对于你肯定不是问题啦~现在我认为你的SpringBoot项目已经可以正常运行咯~

下面就开始整合Jasypt了!!!

1、添加依赖

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

2、通过以下加解密命令,对明文进行加密

// 加密
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="你的明文" password=你的密码 algorithm=PBEWithMD5AndDES

 

// 解密
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="你的密文" password=你的密码 algorithm=PBEWithMD5AndDES
 

          jasypt-1.9.2.jar去Maven Repository下载即可,执行样例(对明文111 使用密码 111 进行加密):

             

 

3、使用 jasypt 对配置文件内容加密时,需要在配置文件中增加jasypt.encryptor.password,即为解密使用的密码

对于 dev 开发环境,安全级别较低,为了开发方便,可以直接在bootstrap-dev.properties中设定密码:
# 配置文件密码
jasypt.encryptor.password=111

对于test或者prod环境,安全级别较高,禁止直接将密码写在配置文件中,而是推荐如下的方式:
# 配置文件密码
jasypt.encryptor.password=${es.property.password}

其中的 es.property.password,可以作为启动参数,在启动应用时指定:

 -Des.property.password=111

4、将加密后的密文配置到配置文件中

以ENC(开头,以)结尾,将密文包裹后,配置到配置文件中,例如:

base.password=ENC(yDmJNoBXb0kMkPZMF65GPw==)

测试一下咯~

@RestController
public class TestController
{
    @Value("${base.password}")
    String password;

    @GetMapping("get/password")
    public String test()
    {
        return password;
    }
}

调用一下,成功的将密文解开了:

                             

                         

如有疑问请留言,尽力解决疑问~

附GitHub项目地址:https://github.com/mning628/Cicada/tree/master/Cicada-Parent/Boot-Jasypt

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值