我想加密和解密一些长度在300到1000个字符之间的字符串。我将把这些加密值保存在cookie中。所以我想知道是否有任何生成较小加密字符串的加密API可能与实际字符串相同或更短。
感谢。
答案 0 :(得分:1)
例如,您可以首先按@Paul建议压缩字符串,如果要将字符串保存为字符串数组,则可以对其进行base64编码,并在加密后进行。可能会满足您的需求。
答案 1 :(得分:1)
对称加密是一种通用工具,因此您可以以明文( cleartext )加密其加密的等效文件(密文)和使用称为私钥的密钥进行解密。拥有密钥的人将能够来回执行此操作(因此称为对称)。如您所知,这与编码/解码非常不同,其中没有涉及私钥,知道编码算法足以解码(例如Base 64)。
您似乎还需要密文比明文 更短。可以使用一些压缩技术,但这很棘手,可能在您的用例中不必要。通常,如果您使用像this这样的SymmetricEncryption实用程序(实际代码,请尝试使用Java 8),您会发现密文比 ciphertext 更长 (不是你想要的)。
最后,对于您的用例,此解决方案可能很复杂。如果我理解正确,您希望识别包含某些信息的HTTP会话。如果您将该信息存储在cookie中,是的,您需要保护该信息,以便您的解决方案至少与cookie本身一样安全。但在这种情况下,您使用服务器端存储进行会话,而不是cookie存储。例如,了解如何完成此操作using Rails。类似的东西应该在Java中可用。这样,您存储在Cookie中的内容就是“参考”。机密数据和机密数据存储在服务器端(据推测,至少与整个服务器一样安全)。