哈希函数,它不仅返回小写字母和数字,还返回符号和大写字母


Hash function which returns not just lowercase letters and numbers, but also symbols and uppercase letters

所有哈希算法(sha1、md5等)似乎都返回小写字母和数字的字符串。有没有算法也会返回[ ] ' , !等符号和大写字母?

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

您似乎引用了哈希的十六进制ascii表示形式("字母和数字")。这只是一种不同的表示"数字"的方式,只有十六个符号,而不是十进制的十个符号,或者二进制的两个符号。

您可以将散列映射到您想要的任何表示形式,散列和其他数字一样只是一个数字。例如,您可以对哈希进行base85编码,根据哈希的大小,它会给您一个ascii字符串,如">uD.RTpAKYo'+CT/5+Cei#DII?(E,9)oF*2M7/c>>"。