配置文件的属性加密

对于一些安全性要求比较高的企业,是不允许在配置文件中配置明文密码的。因为如果在配置文件中采用明文存储密码,将会降低系统安全性。这个时候,jasypt框架就派上用场了。
首先什么是jasypt?
详细网址 : http://www.jasypt.org/
简单来说,就是一个安全框架,用于对一些如数据库密码等重要信息进行加密的框架

配置文件的属性加密解决步骤:
(1):引入pom包

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

(2): 对配置文件的属性值加盐加密得到加密后的密文

//msg:配置文件的属性值
public static void encrypt(String msg) {
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的salt(盐)
        textEncryptor.setPassword("lsggb");
        //要加密的数据(数据库的用户名或密码)
        String password = textEncryptor.encrypt(msg);
        System.out.println("password:" + password);
    }

(3): 修改配置文件,把配置文件中要加密的属性值改为:ENC(密文)

druid:
  driver-class-name: com.mysql.jdbc.Driver
  url: 
  username: 
  password: ENC(密文)

(4): 在配置文件中配置盐值

jasypt:
  encryptor:
    password: lsggb

解密秘钥 jasypt.encryptor.password 也在配置文件里,别人拿到服务器上部署配置文件后,是不是也很轻松的就可以解开这个密码了?

开发环境:为了防止salt(盐)泄露,反解密出密码。删除掉application.properties中的 jasypt.encryptor.password ,然后在IDE的运行参数中添加 -Djasypt.encryptor.password=lsggb

生成部署:直接在启动的shell脚本中添加-Djasypt.encryptor.password=lsggb

解密密文验证是不是原属性值:

public static void decrypt(String msg) {
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的salt(盐)
        textEncryptor.setPassword("lsggb");
        //要加密的数据(数据库的用户名或密码)
        String password = textEncryptor.decrypt(msg);
        System.out.println("password:" + password);
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值