【发布时间】:2013-12-03 02:33:37
【问题描述】:
我正在尝试在我的应用程序之间实施javax.crypto 加密(通过 intnet)。我遵循这个(接受的答案):https://stackoverflow.com/questions/4319496/how-to-encrypt-and-decrypt-data-in-java。据我了解,问题是我需要在两个应用程序中使用相同的SecretKeySpec key 才能加密/解密数据。我不知道如何将它导出(作为字符串或任何东西),然后在我的两个应用程序中对其进行硬编码。
【问题讨论】:
-
为什么要硬编码? Java 可以(在某种程度上)被反编译成人类可读的格式。任何用于加密的硬编码密钥都不安全。 (据我了解)
-
我总是在我的应用程序上运行 ProGuard,所以我希望这会增加一些反编译的难度。这是我在实践中第一次接触加密,所以我不知道如何管理这些密钥......
-
您可以使用 Diffie-Hellman 安全地在您的应用程序必须相互通信时交换密钥 (en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange)。 Java 开箱即用地支持此标准。
标签: java encryption javax.crypto