使用Jasypt对SpringBoot配置文件加密(部署时操作)
上篇介绍了如何使用jasypt对配置文件中的敏感信息进行加密——Spring Boot加密应用配置文件敏感信息(jasypt)但那只适合开发环境那么操作,因为jasypt是可逆的,如果知道了加密的salt,就能解出密码,而如果将salt配置在配置文件中,就如给门上了锁又把钥匙插在锁孔,毫无安全意义解密API@Testpublic void testDecrypt() {String...
·
上篇介绍了如何使用jasypt对配置文件中的敏感信息进行加密——Spring Boot加密应用配置文件敏感信息(jasypt)
但那只适合开发环境那么操作,因为jasypt是可逆的,如果知道了加密的salt,就能解出密码,
而如果将salt配置在配置文件中,就如给门上了锁又把钥匙插在锁孔,毫无安全意义
解密API
@Test
public void testDecrypt() {
String str = "0S9cYu9xnK/MHezp8mpZOkyIrF59p8p/59/e8hXctl8=";
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword("123456");//这里需要是那salt
System.out.println("原文:"+encryptor.decrypt(str));
}
不加盐,菜就不好吃,那如何安全的加盐(salt)呢?方法有不少,一种是在启动时加
具体操作是,开发阶段正常加密,部署时,盐得这么加
jasypt:
encryptor:
password: ${JASYPT_ENCRYPTOR_PASSWORD:}
然后打包成jar,启动时加入盐,按如下命令启动,但缺点是会话已关闭,程序就停止运行了
JASYPT_ENCRYPTOR_PASSWORD=yoursalt java -jar xxxx.jar
这就需要以守护进程启动,不妨这样,将上述命令写在一个可执行脚本中,比如s.sh,如何赋予执行权限
再新写一个启动脚本
nohup ./s.sh > sys.log 2>&1 &
以后端进程的方式启动,将日志输出到sys.log中
还有其他一些方式比如命令行方式加盐、将盐配置到环境变量中等等,没试过
具体请参考:https://github.com/ulisesbocchio/jasypt-spring-boot
更多推荐
已为社区贡献1条内容
所有评论(0)