【问题标题】:Hiding a variable from other applications and classes对其他应用程序和类隐藏变量
【发布时间】:2013-08-30 16:43:07
【问题描述】:

我正在用 java 创建一个应用程序,该应用程序需要一个变量完全保密并且任何人都无法访问。我最初考虑使用“私人”访问修饰符,但这仍然会使其容易受到反射。我不知道是否也可以通过反射访问“受保护”,我希望有人可以给我一种在运行时禁止其他程序访问此变量的方法!

提前非常感谢, 爱德华·布朗

【问题讨论】:

  • 也使用代码混淆器。就像数据库存储加密的密码一样,您可以在只需要验证时执行此操作。或者您可以使用 Java KeyStore 来存储值(可能更不安全)。或者您可以使用本机 C 获取值。这取决于使用点。您可以通过几个变量拆分值的位,并不断地推动/转换它们。
  • “需要”为什么?你需要解释你的用例。

标签: java security variables reflection hide


【解决方案1】:

无论访问修饰符如何,反射都可以看到任何变量。如果你把它存入内存,就可以看到了。

为什么它如此重要以至于完全保密?如果是密码,我建议您阅读以下链接存储密码的各种方法:

所以问题:Why is char[] preferred over String for passwords?

此博客用于加密密码:http://www.javacodegeeks.com/2012/05/secure-password-storage-donts-dos-and.html?ModPagespeed=noscript

【讨论】:

  • 不,我不会以纯文本或类似的方式存储密码。我只需要在运行时隐藏加密密钥。
  • 加密密钥是指我用于客户端和服务器安全地相互通信的对称加密密钥。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多