【问题标题】:Non Hex Based hash Code非基于十六进制的哈希码
【发布时间】:2015-03-24 05:40:18
【问题描述】:

长话短说。我得到了一个从文件生成的哈希码,但没有被告知它是用什么函数生成的。哈希码为:“IRV4RRFX3Q62YIXLBJMEXANLDE3JPVFT”

如果我是正确的,不能是 MD5 或 sha1,因为它们是基于十六进制驱动的,所以它必须是 base64 之类的东西。

有人知道这是用哪种哈希生成器生成的吗? 或者如果它甚至不是合法的哈希?

提前感谢您的帮助

【问题讨论】:

  • 回复:“不能是 MD5 或 sha1,因为它们是基于十六进制驱动的”:这是不正确的。 MD5 和 SHA-1 只是输出字节序列。对这些字节序列进行字符串化的最常见方法是十六进制,但它根本不是唯一的方法。许多库都有像md5_base64 这样的函数来生成使用Base-64 字符串化的MD5 哈希值。 (也就是说,您的代码太长,不能成为其中任何一个哈希的 Base-64 表示形式。而且以仅由大写字母和数字组成的 32 个字符的 Base-64 字符串结束是极不可能的。)

标签: hash md5 sha1


【解决方案1】:

从提供的信息中无法确定,但它可能是 SHA1 哈希的 base32。

使用 this base32 converter 给我一个 446BC8C4B7DC3DAC22EB0A584B81AB193697D4B3 的十六进制字符串,这是 SHA1 哈希的正确长度。

【讨论】:

  • +1。我以前没有听说过 Base32,但它是有道理的:SHA-1 输出一个 160 位的字符串,而 Base32 意味着 log₂(32) = 每个字符 5 位,因此它给出 160/5 = 32 个字符。而the Wikipedia article on Base32 说它的字符集是 2-7 加上 A-Z,它与 OP 的字符串匹配。
  • base32 是否用于识别文件?没听说过。
  • base32 只是一种类似于 hex 或 base64 的编码,因此可以在相同的场景中使用。不过,我之前并没有故意在实践中看到它。
  • 啊,好吧,相同的信息,但使用不同的语言或来自at!
  • 谢谢你,所有的好回复:-D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-22
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 2014-07-24
  • 2012-08-05
相关资源
最近更新 更多