0

所有哈希算法(sha1、md5 等)似乎都返回带有小写字母和数字的字符串。是否有任何算法也返回诸如[ ] \ , !等和大写字母之类的符号?

4

2 回答 2

3

典型的散列函数(如 MD5)产生字节作为输出。这些字节通常是十六进制编码的,以便它们可以表示为文本。但是,还有其他二进制到文本的编码。

于 2013-08-29T19:19:46.657 回答
2

您似乎指的是哈希的十六进制ASCII表示(“字母和数字”)。这只是“数字”的另一种说法,只有十六个符号而不是十进制的十个符号或二进制的两个符号。

您可以将散列(与其他任何数字一样)映射到您想要的任何表示。例如,您可以对哈希进行 base85 编码,从而得到一个 ascii 字符串,例如 ">uD.RTpAKYo'+CT/5+Cei#DII?(E,9)oF*2M7/c~>",具体取决于哈希的大小。

于 2013-08-29T19:19:06.347 回答