第一、添加依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
第二、application.yml 配置秘钥
jasypt:
encryptor:
password: thisispassword
第三、编写test文件生成密码:
@Autowired
StringEncryptorencryptor;
@Test
public void contextLoads() {
String url =encryptor.encrypt("jdbc:mysql://220.12.23.17:3306/tools-test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&failOverReadOnly=false");
String name =encryptor.encrypt("rootdb");
String password =encryptor.encrypt("password2018");
System.out.println("url:"+url);
System.out.println("name:"+name);
System.out.println("password:"+password);
}
输出结果:
url:qMwOuqrSfWKKD2EC8CUHQVyc9WZu7vD5QrPLZhaJqV8sCLBhhiiqV/oh7JBsn0L4iHhkH4PcyWcdKkjYbsptGPDaWoRZdmDTMCUMo5aFOzZ+4PMJWAupt1XoBfbPEuka0YL01MlDM9RNLlAWUrzI19H2nsnt07bmqx5WRaA1AdTYdyCpn
username: XzQi3cMJA2kUybaQeFix
password: yL9y4+MXd5yzaO0U2X7FXclDMe5/Ra5ZxCMTQmkc
第四、将生成的秘钥填充到application.yml文件里, 注意前面需要添加ENC,比如:
username: ENC(XzQi3cMJA2kUybaQeFixxQ==)
password: ENC(yL9y4+MXd5yzaO0U2X7FXclDMe5/Ra5ZxCMTQmkgwoc=)
第五、编写make文件
mvn clean package -T 1C -Dmaven.test.skip=true -Dmaven.compile.fork=true
第六、删除application.yml 文件里的配置秘钥
第七、 执行make文件 生成target jar
第八、java -jar demo-jasypt-0.0.1-SNAPSHOT.jar --jasypt.encryptor.password=thisispassword
注意:
秘钥尽量不要放在配置文件里。在启动app的时候添加上去。
以上是我生产中用到的一点知识,与大家共享。如有技术问题,请给我留言。