如何通过不同的应用程序共享密钥

时间:2014-10-31 18:53:04

标签: java encryption encryption-symmetric

我想使用对称密钥加密来加密/解密某些文本。我正在使用apache shiro库提供的类。(org.apache.shiro.crypto.DefaultBlockCipherService)

我的服务器运行的多个实例将加密和解密文本。我想了解如何在多个应用程序实例之间共享密钥,以便由一个加密的文本可以被其他人解密。

如何将密钥序列化为文件并再次从文件中生成密钥?

-Thanks

1 个答案:

答案 0 :(得分:0)

我给出的答案更多的是在部署/运营空间,但可以解决您的问题。我正在查看the superclass以获取参考,其中包含密钥的加密和解密实现。

你可以:

  1. 将表示该部署的字符串作为环境变量传递给应用程序的所有实例。 (可能是部署的版本号或散列日期等)。
  2. 使用您在启动时选择的算法开发应用程序以使用和散列此值。这是您作为代码的单例提供的密钥,用于加密/解密邮件。
  3. 确保您的部署机制(无论是手动还是某些代码)为所有实例提供相同的值。 (即选择与部署或代码部署一致的内容)
  4. 这种方法可确保您的代码对实际密钥进行模糊处理(它不会成为ENV变量版本),并且您可以经常轮换它以保证其安全。

    希望这就是你要找的东西。