【问题标题】:Encryption Technique to Generate Smaller string in Java在 Java 中生成更小的字符串的加密技术
【发布时间】:2015-05-31 21:25:52
【问题描述】:

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

谢谢。

【问题讨论】:

  • 为什么不简单地结合加密和压缩算法(我建议先压缩)?
  • 可以肯定的是,您说的是加密,所以您想从密文中恢复明文,对吧?
  • 是的。我想将此加密信息保存在 cookie 中,然后检索它以供进一步使用。

标签: java encryption encryption-symmetric


【解决方案1】:

例如,您可以按照@Paul 的建议先压缩字符串,如果您想将其保留为漂亮的字符串而不是字节数组,然后加密后对其进行 base64 编码。也许它会满足您的需求。

【讨论】:

    【解决方案2】:

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

    您似乎还有一个额外要求,即 密文 应该明文。可以使用一些压缩技术,但这很棘手,在您的用例中可能不需要。一般来说,如果您使用像 this 这样的 SymmetricEncryption 实用程序(真实代码,请尝试使用 Java 8),您会看到 ciphertextciphertextlonger em>(不是你想要的)。

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

    【讨论】:

      猜你喜欢
      • 2014-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多