企业现在有必要做网站吗,做淘宝还有必要做网站吗,网站域名被黑,如何获取免费的wordpressSpringBoot集成jasypt#xff0c;加密yml配置文件 一、pom配置二、生成密文代码三、配置3.1、yml加密配置3.2、密文配置3.3、启动配置3.4、部署配置 四、遇到的一些坑 最新项目安全检测#xff0c;发现配置文件中数据库密码#xff0c;redis密码仍处理明文状态
一、pom配置… SpringBoot集成jasypt加密yml配置文件 一、pom配置二、生成密文代码三、配置3.1、yml加密配置3.2、密文配置3.3、启动配置3.4、部署配置 四、遇到的一些坑 最新项目安全检测发现配置文件中数据库密码redis密码仍处理明文状态
一、pom配置
!-- 配置文件yml加密 --
dependencygroupIdcom.github.ulisesbocchio/groupIdartifactIdjasypt-spring-boot-starter/artifactIdversion2.1.2/version
/dependency二、生成密文代码
仅作为生成密文的工具类
package com;import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.EnvironmentPBEConfig;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;SpringBootTest
RunWith(SpringRunner.class)
public class JasyptUtil {private final static String SECRECT 1234qwer; //秘钥private final static String ALGORITHM PBEWithMD5AndDES; //加密算法Testpublic void testEncrypt() throws Exception {System.out.println(密文密码 encrypt(myPassword));}private String encrypt(String text){StandardPBEStringEncryptor standardPBEStringEncryptor new StandardPBEStringEncryptor();EnvironmentPBEConfig config new EnvironmentPBEConfig();config.setAlgorithm(ALGORITHM);config.setPassword(SECRECT);standardPBEStringEncryptor.setConfig(config);return standardPBEStringEncryptor.encrypt(text);}public String decrypt(String text) {StandardPBEStringEncryptor standardPBEStringEncryptor new StandardPBEStringEncryptor();EnvironmentPBEConfig config new EnvironmentPBEConfig();config.setAlgorithm(ALGORITHM);config.setPassword(SECRECT);standardPBEStringEncryptor.setConfig(config);return standardPBEStringEncryptor.decrypt(text);}}三、配置
3.1、yml加密配置
jasypt配置一定要放最上面
#加密配置
jasypt:encryptor:password: 1234qwer # 秘钥algorithm: PBEWithMD5AndDES # 加密算法iv-generator-classname: org.jasypt.iv.NoIvGenerator3.2、密文配置
使用工具类加密之后的密文直接放在配置文件中使用 ENC()
3.3、启动配置
有的说法还需要在启动类做一下配置我这边并没有配置也可直接使用。 如无法启动可在启动类配置EnableEncryptableProperties 3.4、部署配置
开发过程中将秘钥直接放在yml中可以但是发布到生产之后这样放的话那跟明文也没有什么区别了。 所以发布的时候password 的配置空着即可。通过jar包的启动命令来设置秘钥。如下
nohup java -jar -Djasypt.encryptor.password1234qwer /app/web.jar --server.port8080 --spring.config.location/app/web.yml /app/web.out 21 四、遇到的一些坑
1、jasypt的配置文件要放在ENC()密文配置的上面。 2、版本需要匹配 3、启动命令秘钥需要加’
报错Failed to bind properties under ‘spring.datasource.password‘ to java.lang.String 参考https://blog.csdn.net/qq_38254635/article/details/132027639