如何从Java进程中隐藏参数?

Script_Junkie

我想从正在运行的Java进程中隐藏参数(密码解释)(可以从命令行看到)。

例如,当我在cmd上键入jps -m时,它将向我显示所有Java进程及其参数:

运行jps -m后的输出:6120 someproject.jar -password

其中6210是pid。

我需要该密码才能运行Java进程。问题是,如果我的计算机受到威胁,则有人可以读取密码并造成进一步的损害。

一种解决方案是将密码存储在本地文件中。但是如果机器受到威胁,仍然有人可以得到它。

有什么想法我该如何进行吗?

提前致谢。

更新1:密码已散列,但我仍然希望将其隐藏。

斯蒂芬·C

在(例如)C程序中处理此问题的方式将是覆盖提供给main(...)入口点方法的参数列表有关更多信息,请阅读以下内容:

不幸的是,“覆盖”方法不适用于Java应用程序。从纯Java来看,这是不可能的。即使使用本机代码库,也将很难找到(本机)自变量向量在内存中的存储位置。

(此外,在应用程序删除它们之前,还有一个很小的时间窗口,其中显示了参数...)


因此,您最好的选择是以另一种方式传递机密信息。例如,通过环境变量,具有访问限制的临时文件或通过标准输入来传递机密信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章