【问题标题】:Relation between encryption input and output length?加密输入和输出长度之间的关系?
【发布时间】:2013-12-21 16:03:25
【问题描述】:

如果我要加密一个任意长度的字符串(假设使用 md5),增加字符串大小与输出哈希之间是否有任何关系?

例如,如果我要加密一个长度为 1 亿个字符的字符串,与输入 5 个字符的字符串相比,它是否更有可能输出更长的哈希?

详细说明为什么也将不胜感激,谢谢!

【问题讨论】:

  • 即使是对相关文档的最少阅读也会发现,加密哈希函数具有固定的输出大小:MD5 是 128 位,SHA1 是 160,SHA256 是 256 位,SHA384 是......模式清晰。

标签: encryption md5


【解决方案1】:

哈希函数的一个想法是输出和输入长度之间没有关系。例如,md5 哈希的长度始终为 128 位。

通常,您无法从输出哈希中推断出任何关于输入的内容。

【讨论】:

    【解决方案2】:

    MD5 不是加密,它是散列。这是一个重要的区别。加密字符串时,您可以在之后反转加密。这必然意味着加密后的字符串长度会与输入字符串的长度相关。

    另一方面,哈希是输入的指纹或摘要,它始终是恒定长度,因此也不可逆。散列的长度取决于所使用的算法,而不是输入的长度。

    【讨论】:

      猜你喜欢
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多