Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SHA-1散列可以是纯数字吗?_Php_Algorithm_Theory_Sha1 - Fatal编程技术网

Php SHA-1散列可以是纯数字吗?

Php SHA-1散列可以是纯数字吗?,php,algorithm,theory,sha1,Php,Algorithm,Theory,Sha1,SHA-1散列是否可能是纯数字的,或者算法是否确保必须至少有一个字母字符 Edit:我用base 16表示它,作为PHP的sha1()函数返回的字符串。从技术上讲,sha1散列是一个数字,它通常在base 16中编码(这是PHP的sha1()所做的),因此它几乎总是包含一个字母。但这并不能保证 十六进制编码的160位数字没有数字a-F的几率为(10/16)40或约6.84227766×10-9您可以在任意基中表示SHA1的输出(就像任何二进制数据一样)。具体来说,您可以将结果编码为base-8/

SHA-1散列是否可能是纯数字的,或者算法是否确保必须至少有一个字母字符


Edit:我用base 16表示它,作为PHP的sha1()函数返回的字符串。

从技术上讲,sha1散列是一个数字,它通常在base 16中编码(这是PHP的sha1()所做的),因此它几乎总是包含一个字母。但这并不能保证


十六进制编码的160位数字没有数字a-F的几率为(10/16)40或约6.84227766×10-9

您可以在任意基中表示SHA1的输出(就像任何二进制数据一样)。具体来说,您可以将结果编码为base-8/10。

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为基数)的随机数,而没有得到任何7、8或9。

谢谢!正是我想知道的。:)更令人满意的说法是:在以十六进制表示的14600万个sha1中,大约有1个的位数不超过9。例如,hashlib.sha1('169977707')。hexdigest()='5938266572196464643240994308852871296620'@NickJohnson你用蛮力发现了吗?@NickJohnson天哪。。。哦,它只有16亿分之一。肯定用了不到几分钟对吧?