【问题标题】:Best encryption and decryption algorithm for urlurl的最佳加解密算法
【发布时间】:2015-10-10 13:57:16
【问题描述】:

我需要在我的应用程序中加密和解密 URL。

加密是绕过审查的必要条件。该应用程序目前使用 RC4,但现在不再可行,希望有更好的替代方案。

一个好的算法应该具有以下特点:

  1. 哈希值应尽可能短 一些网络过滤器会阻止超过 75 个字符的 URL。比 RC4 生成的哈希值更短的哈希值是一个不错的选择。
  2. 该算法在内存使用和 CPU 方面都应该是高效的。
  3. 算法应该比RC4强。
  4. 该算法的 PHP 和 JS 实现应该可用。

【问题讨论】:

  • 目前还不清楚您实际上要做什么 - 也许您可以从解释您的前提开始?哈希也不是密码。
  • 哈希:SHA-3,密码:AES。

标签: javascript php algorithm encryption cryptography


【解决方案1】:

您提到了 RC4,它是一种流密码。正如你所说,这是不安全的。对 URL 使用流密码似乎很奇怪,但如果这是你想要的方式,我建议你看看 Salsa20。谷歌正在使用它,并且没有专利。

如果您想使用分组密码,AES 是安全性和速度之间的良好折衷方案之一。这是导致它赢得 AES 竞争的两个因素——足够的安全性和非常好的速度。除非你真的想要一个流密码,否则我实际上更喜欢这个而不是 Salsa20。

至于缩小尺寸,以上两者都相当紧凑。例如,AES 将需要 16 个字节块,并将填充为 16 的偶数倍。因此,如果您必须保持在 75 个字符以下(并假设在您的编码中每个字节 1 个字符),您将必须保持在 64 个字符以下防止 AES 生成另一个甚至 80 个字节的块。

我建议先压缩 URL,然后加密。您应该能够以这种方式将大量数据压缩到 72 个字节中。只要记住压缩,然后加密。如果您先加密,则密文几乎不受压缩影响。

【讨论】:

    【解决方案2】:

    我需要在我的应用程序中加密和解密 URL。

    我可以推荐an alternative solution to URL parameter encryption吗?

    加密是绕过审查的必要条件。该应用程序目前使用 RC4,但现在不再可行,希望有更好的替代方案。

    使用 HTTPS。 Avoid client-side Javascript cryptography in the browser。借助新的 Let's Encrypt 证书颁发机构,HTTPS 比以往任何时候都免费且简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 2010-11-20
      • 1970-01-01
      • 2010-10-21
      • 2014-12-24
      • 2016-01-14
      • 1970-01-01
      相关资源
      最近更新 更多