1

我正在使用 bash 脚本来启动 java 程序/进程。bash 脚本提示输入用户名和密码,并应将这些提供给 java 进程。我不想将这些作为 java 程序的参数提供,因此可以使用 shell“ps”命令将它们视为明文。所以我不想要以下任何一种:

 - java MyClass <clearTextPassword>
 - java -Dpass=<clearTextPassword>

是否有任何推荐的方法可以从 shell 脚本向 java 进程提供密码?

在此先感谢您的任何建议。

最好的问候

4

4 回答 4

3

如果您自己编写了程序,最好设计您的程序,以便提示用户输入密码并使用Console类的readPassword()从命令行读取密码

于 2013-03-05T08:46:18.470 回答
2

在这种情况下,我会在磁盘上创建一个文件(加密与否取决于您的安全需求级别)。我修改了权限,以便只有受控用户可以在执行程序时读取它

于 2013-03-05T08:45:57.707 回答
1

您可以将密码存储在属性文件中(在保护它时您有不同的选择。您也可以完全放弃密码并使用公钥

于 2013-03-05T08:46:01.850 回答
1

您可以传递密码的散列版本。例如,提供一个时间戳,以及一个连接在一起的时间戳和密码的 MD5。当然,前提是您可以控制流程代码并且可以使用散列版本。

于 2013-03-05T08:46:13.317 回答