在java中使用共享密钥加密/解密?

时间:2012-05-31 07:31:33

标签: java encryption

我有客户令牌,我从一个网络应用程序发送说app1到另一个webapplication说app2。我想加密客户令牌 在app1并使用在app1和app2共享的密钥在app2解密。我没有得到如何开始这个?会非常的 如果有人可以使用共享密钥向我指出一些示例代码或一些tutotrial,因为网上有太多的加密/解密内容(如对称密钥,公钥 - 私钥),这确实让我很困惑。另一个限制是我真的很短的时间来详细介绍。提前谢谢。

编辑: - 我正在寻找简单的程序,例如在http://sanjaal.com/java/186/java-encryption/tutorial-java-des-encryption-and-decryption/但是使用AES?无法使用共享密钥在AES中找到此类示例?

2 个答案:

答案 0 :(得分:0)

我会建议:

让您的每个应用程序分配一个公钥/私钥对,并将密码安全保护的私钥存储在密钥中。确保这是非常安全的。毋庸置疑,公共证书(包含公钥)将是公开的。
每个应用程序都将拥有所有其他应用程序的公钥证书。现在,当应用程序想要与其他应用程序通信时;

使用发送应用程序的私钥首先sign(基本上加密)令牌。
然后使用要发送数据的应用程序的公钥加密结果值。

通过这种方式,可以确保接收此值的应用程序无法确定中间的任何人是否能够确定您发送的内容并验证令牌是否来自可信实体。 但是,如果您使用共享密钥(对称密钥),那么如果对称密钥被泄露,那么所有应用程序都将受到损害。

答案 1 :(得分:-1)

通常使用非对称算法(例如RSA)加密对称密钥(例如AES)以与另一方安全地共享它,然后使用对称密钥加密后续通信。这是非常基本的要点,但还有很多因素需要考虑。

我现在可以看到自己因为几个原因而陷入非常大的麻烦。

  1. 您不了解加密的概念
  2. 你不愿意彻底研究它
  3. 只想从网上获取一些代码并使用它。
  4. 真的很短的时间
  5. 我知道您可能没有选择,也许您的雇主/客户想要快速完成这项工作。但我完全建议你不要继续,除非你知道你在做什么。如果您正在处理敏感信息,如信用卡信息或其他重要客户信息,请自己帮忙并深入研究密码。

    如果以不正确的方式使用加密算法,加密算法的强度并不重要。因此,您需要了解如何正确使用每种算法及其优缺点。