如何为java进程提供密码

时间:2013-03-05 08:43:34

标签: java bash passwords parameter-passing

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

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

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

提前感谢任何建议。

最好的问候Trym

4 个答案:

答案 0 :(得分:3)

如果你自己编写了程序,最好设计你的程序,以便它向用户提供密码并使用ConsolereadPassword()从命令行读取密码

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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