2013-03-05 119 views
1

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

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

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

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

问候Trym

+0

密码我认为,这样它会要求提供密码本身,你不能修改Java的一部分? – 2013-03-05 08:45:22

回答

2

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

1

你可以存储密码的属性文件(你有不同的选择,当涉及到保护它。你也可以放弃全部密码和使用一个公钥

1

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

+0

那么一个哈希码会做出什么区别,依然如果一个人得到的散列值的保持,该程序可以执行的代码nevertherless – Sudhakar 2013-03-05 08:56:39

+0

你可以做一个散列(时间戳+ PWD),因此重放攻击是不可能不使用相同的时间戳 - 你可以检测到。 – Resh32 2013-03-06 13:40:04

3

如果你有自己的编码程序,它能够更好地设计程序,使得它promts用户密码,并使用Console CL驴readPassword()读取命令行

+0

我想唯一的缺点是你不能脚本程序自动运行在一定的时间间隔,因为它会在每次读取标准输入。 – 2013-03-05 08:58:42

+0

是的。在这种方法中,用户应该可以在运行时输入密码。 – codeMan 2013-03-05 09:04:40

+0

在shell脚本中,我使用nohup启动java,所以我猜控制台不可用? – user2134911 2013-03-06 06:17:19

相关问题