Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jasypt:主密码有多安全?_Java_Spring_Jasypt - Fatal编程技术网

Java Jasypt:主密码有多安全?

Java Jasypt:主密码有多安全?,java,spring,jasypt,Java,Spring,Jasypt,同事们,我在spring boot项目中使用了Jasypt(在Windows上运行的独立jar)。 我需要通过命令行传递主密码来运行jar。 它看起来像: java-jar-djastpt.encryptor.password=masterpass app-1.0.0-RELEASE.jar 因此,任何人都可以通过Windows任务管理器查看masterpass: 如何获得这张通行证 我发现了一个示例,其中主密码存储在Windows环境变量中,但这似乎不是一个好主意。在客户端工作站上运行时,通

同事们,我在spring boot项目中使用了Jasypt(在Windows上运行的独立jar)。 我需要通过命令行传递主密码来运行jar。 它看起来像:

java-jar-djastpt.encryptor.password=masterpass app-1.0.0-RELEASE.jar

因此,任何人都可以通过Windows任务管理器查看
masterpass

如何获得这张通行证


我发现了一个示例,其中主密码存储在Windows环境变量中,但这似乎不是一个好主意。

在客户端工作站上运行时,通常很难隐藏任何内容。最后-当密码/密钥被加密时,您仍然需要将密码或私钥存储在某处:/

您可以对数据进行编码/加密以使其更加困难,但一旦二进制文件和配置驻留在客户端,您就不会轻易阻止一个专用的对手

如果您至少不想在外部(环境或命令行中)显示密码,那么在运行任何其他操作之前,从文件中读取主密码并在
main
中设置系统属性如何


(请让我知道它是否工作)

至少您不应该通过命令行选项提供主密码,因为其他用户可以访问机器,他们可以从进程列表中检索主密码

而是通过单独的配置文件提供。因此,如果您使用的是spring boot,并且在config/application.properties中有您的常规env属性,那么只需添加一个只包含主密码的config/application.yml文件,并仅在只有用户权限的机器上保存该文件(chmod go-rxw)。例如,参见此处:

安装过程中的其他一切可能都来自git repo,有访问权限的人只能看到加密的密码,但无法解密,除非他们拥有主密码——如果他们无法实际访问生产机器,他们就没有主密码。操作员可能只向开发团队提供加密的密码,因此他们永远不知道实际密码。DevOps专家可能不喜欢这样,但将密码保密到最少数量的管理员通常有利于安全