SHA-1哈希是否有可能是纯数字,或算法是否确保必须至少有一个字母字符?
编辑:我在16的基础上表示它,作为PHP的sha1()函数返回的字符串。
答案 0 :(得分:17)
从技术上讲,SHA1哈希是一个数字,它通常最常用16进制编码(这是PHP的sha1()所做的),因此它几乎总是有一个字母。但是不能保证这一点。
没有数字A-F的十六进制编码160位数的几率为(10/16) 40 或约6.84227766×10 -9
答案 1 :(得分:3)
SHA-1哈希是一个160位的数字。为了便于编写,它通常用十六进制编写。十六进制(基数16)数字是0,1,2,3,4,5,6,7,8,9,a,b,c,d,e和f。这些字母没有什么特别之处。每个十六进制字符相当于4位,这意味着散列可以写成40个字符。
我不相信SHA-1哈希不能有任何字母的原因,但这是不可能的。这就像生成一个40位(基数为10)的随机数而没有得到任何7s,8s或9s。
答案 2 :(得分:1)
您可以在任何所需的基础中表示SHA1的输出(就像任何二进制数据一样)。具体来说,您可以将结果编码为base-8/10。