【问题标题】:Command line is prompting for password, cannot send password using java eclipse命令行提示输入密码,无法使用 java eclipse 发送密码
【发布时间】:2012-03-30 14:49:15
【问题描述】:

我有一个正在运行的程序,它会打开命令提示符屏幕,我给它我的参数,但随后它要求输入密码。我给它发送了一个密码,但我收到了一个错误,认为密码是前面参数的一部分,这是我的一些代码:

Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe /k \"" + CD + AND + Keytool + Genkey + Keyalg + Keysize + Alias + Validity + Keystore +  "/K && " + Password);

错误是“非法选项密码”

有什么想法吗?

我认为我需要使用 outputstreamwriter,但我不太确定如何使用。

谢谢

【问题讨论】:

  • 您是否尝试过仅打印字符串添加的输出,看看是否正确?我建议你从那里开始。
  • 我确信您的密码是password。现在我要破解你:)
  • 是的,它看起来对我来说是正确的,我必须在第 2 个 K 之前添加一个空格,但它看起来很好。仍然提示我非法选项错误

标签: java process cmd runtime.exec


【解决方案1】:

您不必终止公开报价吗?

Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe /k \"" + CD + AND + Keytool + Genkey + Keyalg + Keysize + Alias + Validity + Keystore +  "/K \" && " + Password);

甚至在密码之后,也许

Process p = Runtime.getRuntime().exec("cmd /c start cmd.exe /k \"" + CD + AND + Keytool + Genkey + Keyalg + Keysize + Alias + Validity + Keystore +  "/K && " + Password + "\"");

【讨论】:

  • 第一种成功了,提示我输入密码
  • 我觉得你应该把exec里面的所有东西都放到一个字符串里,打印出来看看是否有效。
  • 我查了一下,有效
  • 您介意向我们展示一下吗?你可以屏蔽密码:)
【解决方案2】:

您应该执行以下操作:

  1. 从代码中删除密码
  2. 当它告诉你密码时输入密码

【讨论】:

  • 是的,不过我想以编程方式做到这一点
  • 是否有可能以编程方式进行?
  • 即使你这样做,它也会再次检查一致性,这是标准平台中安全机制的工作方式。因此无需通过编码包含密码,以获得更好的性能实践!
猜你喜欢
  • 2023-03-20
  • 2011-06-18
  • 2016-02-20
  • 2012-11-08
  • 2010-12-19
  • 1970-01-01
  • 2017-04-20
相关资源
最近更新 更多