【发布时间】:2019-12-01 18:33:11
【问题描述】:
我正在使用 Jasypt 加密并在属性文件的 ENC() 中指定属性值。解密密码通过命令行参数发送,例如java -Djasypt.encryptor.password=somepassword -jar name.jar。一切正常,但问题是当我搜索正在运行的进程时,它也会显示密码。有没有办法通过从某个地方读取加密密码来隐藏它?
我曾想过使用环境变量,但这也可能会暴露密码。所以,决定反对它。
更新: 在另一个 SO 帖子中有一个解决方案 Spring Boot How to hide passwords in Properties file?
我遵循的解决方案是创建一个名为JASYPT_ENCRYPTOR_PASSWORD的环境变量,执行命令java -jar name.jar,然后取消设置环境变量。这符合我的预期。
【问题讨论】:
-
echo password | java ....然后读取它而不是获取属性。 -
记得在 JVM 使用后清除它,否则堆转储会显示它
标签: java spring-boot password-encryption jasypt