在Java中生成较小字符串的加密技术

时间:2015-05-28 11:48:25

标签: java encryption encryption-symmetric

我想加密和解密一些长度在300到1000个字符之间的字符串。我将把这些加密值保存在cookie中。所以我想知道是否有任何生成较小加密字符串的加密API可能与实际字符串相同或更短。

感谢。

2 个答案:

答案 0 :(得分:1)

例如,您可以首先按@Paul建议压缩字符串,如果要将字符串保存为字符串数组,则可以对其进行base64编码,并在加密后进行。可能会满足您的需求。

答案 1 :(得分:1)

对称加密是一种通用工具,因此您可以以明文( cleartext 加密其加密的等效文件(密文)和使用称为私钥的密钥进行解密。拥有密钥的人将能够来回执行此操作(因此称为对称)。如您所知,这与编码/解码非常不同,其中没有涉及私钥,知道编码算法足以解码(例如Base 64)。

您似乎还需要密文明文 更短。可以使用一些压缩技术,但这很棘手,可能在您的用例中不必要。通常,如果您使用像this这样的SymmetricEncryption实用程序(实际代码,请尝试使用Java 8),您会发现密文 ciphertext 更长 (不是你想要的)。

最后,对于您的用例,此解决方案可能很复杂。如果我理解正确,您希望识别包含某些信息的HTTP会话。如果您将该信息存储在cookie中,是的,您需要保护该信息,以便您的解决方案至少与cookie本身一样安全。但在这种情况下,您使用服务器端存储进行会话,而不是cookie存储。例如,了解如何完成此操作using Rails。类似的东西应该在Java中可用。这样,您存储在Cookie中的内容就是“参考”。机密数据和机密数据存储在服务器端(据推测,至少与整个服务器一样安全)。