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

时间:2017-05-13 18:52:20

标签: hash base64 ascii md5 sha

...我想问一下这是怎么回事,希望不要问一个问题问题(我在互联网上搜索了一个星期,没找到它......我知道它隐藏在某个地方那些长书...所以,如果它在这里,请指导我,线索,ty)......

...我想知道什么是字符库......或者它是如何用于哈希函数中使用的字符库,例如MD5,SHA ...例如......他们使用什么是base64, ascii,扩展ascii ... cose如果我尝试编码例如char alt 444(╝)它编码它...但必须有一个限制权限,可以使用多少无关紧要的字符... cose否则哈希不可能是唯一的,对吗?许多使用这些算法的网站只允许你使用base64字符池...我猜...请帮助...谢谢

1 个答案:

答案 0 :(得分:0)

散列算法占用大量字节,计算散列并返回预定义的字节数。因此,如果输入是短编码文本或大型二进制文件,则对它们无关紧要。

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

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

使用SHA-256的示例

SHA256("hello") = "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
  • 返回32个字节,与256位相同,因此名称为SHA-256。
  • 32字节为十六进制编码,每个字节用十六进制数表示,带有两个字符(2c表示一个字节,数字为44)。