0
我正尝试从我的Java程序与外部控制台应用程序进行通信,并且我需要将密码传递给它。通过ProcessBuilder传递合理的数据
我的问题是,在ProcessBuilder()参数列表中传递纯文本密码是安全的吗?我的意思是,有人可以拦截该消息?什么会是一个更安全的方式来实现呢?
谢谢
ArrayList<String> lstArgs = new ArrayList<String>();
lstArgs.add("program.exe");
lstArgs.add("password");
ProcessBuilder pb = new ProcessBuilder(lstArgs);
pb.start();
我想如果你的密码是硬编码的,就像你的例子,有人可以将它从你的程序的字节码中提取出来。 – azurefrog 2014-10-30 20:34:20
*“是,在ProcessBuilder中以纯文本传递密码是安全的()”* - 否,但是您有什么选择......另外,在Windows上,可以真正确定传递的参数到一个进程...使其更加安全...... – MadProgrammer 2014-10-30 20:34:43
任何能够从命令中读取密码的人都可以首先从您的进程中读取字符串。 – SLaks 2014-10-30 20:39:06