当前位置:   article > 正文

jasypt——对Springboot项目数据源连接加解密_jasypt解密数据库密码+druid数据库连接池+springboot

jasypt解密数据库密码+druid数据库连接池+springboot

在项目中为了防止数据源连接密码直接展示在项目源码中造成的不够优雅问题。可以直接引入jasypt依赖:

  1. <!--jasypt-->
  2. <dependency>
  3. <groupId>com.github.ulisesbocchio</groupId>
  4. <artifactId>jasypt-spring-boot-starter</artifactId>
  5. <version>3.0.5</version>
  6. </dependency>

在配置文件中进行简单配置:

  1. jasypt:
  2. encryptor:
  3. password: ${PASSWORD}
  4. algorithm: PBEWithHMACSHA512AndAES_256

password:表示要加密字段的盐值。

algorithm:表示要加密的算法。
Jasypt提供了不同强度的文本(String)加密接口,根据强度由弱到强排序依次为:

  1. BasicTextEncryptor(PBEWithMD5AndDES)
  2. StrongTextEncryptor (PBEWithMD5AndTripeDES)
  3. AES256TextEncryptor (PBEWithHMACSHA512AndAES_256)

使用方法均为:先调用setPassword设置密码,再调用encrypt或decrypt做加解密(其他加密器的使用替换BasicTextEncryptor类型即可):

  1. // PBEWithHMACSHA512AndAES_256
  2. AES256TextEncryptor textEncryptor = new AES256TextEncryptor();
  3. textEncryptor.setPassword("盐值");
  4. String myEncryptedText = textEncryptor.encrypt("真实密码");
  5. //加密后的结果
  6. System.out.println(myEncryptedText);
  7. String plainText = textEncryptor.decrypt(myEncryptedText);
  8. //解密后的结果
  9. System.out.println(plainText);

将加密后的密文字符串添加到跑配置文件中:

 以数据库的连接配置为例,当然其他的DB连接也是可以支持的。

SpringBoot在启动的时候会根据ENC()来判断是否有加密,如果有会根据配置的盐和算法进行解码。

这样在启动时将盐值以变量的形式注入:

Java -jar PARRWORD=盐值;

在idea 中:

 配置启动变量就可以了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/844143
推荐阅读
相关标签
  

闽ICP备14008679号