哈希函数(例如 MD5、SHA)使用什么字符集...

What character set do hash functions (eg. MD5, SHA) use...

...我想问一下怎么样,希望不是问一个已经问过的问题(我在网上找了一个星期,没找到...我知道它被隐藏了在那些长长的书中的某个地方......所以如果它在这里请告诉我线程,ty)......

...我想知道什么字符基...或者它与用于 MD5、SHA 等哈希函数的字符基到底有什么关系...例如...它们使用什么base64、ascii、扩展 ascii...如果我尝试编码例如 char alt 444 (╝) 它会对其进行编码...但是必须有一个限制,可以使用多少无关的字符...cos否则散列不可能是唯一的,对吧?而且很多使用这些算法的网站只让你使用base64字符池...我猜...请帮忙...谢谢

哈希算法采用一堆字节,计算哈希和 return 预定义的字节数。因此,无论输入是短编码文本还是大型二进制文件,对他们来说都无关紧要。

这取决于散列函数和编程环境的实现,字符串如何转换为字节数组。只要始终以相同的方式完成,哈希值就会具有可比性。如果需要跨平台哈希,最好先将字符串转换为字节数组(最好是 UTF-8 编码),然后将其提供给哈希。

输出通常是哈希的十六进制表示,但有时您也可以请求二进制输出。

SHA-256 示例

SHA256("hello") = "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
  • Returns 32 个字节,与 256 位相同,因此得名 SHA-256。
  • 这32个字节是十六进制编码的,每个字节用两个字符的十六进制数表示(2c代表一个字节,数字44)。