我只是在哈希函数及其速度上尝试一些基准测试,在一种情况下,我遇到了奇怪的问题。代码很简单,我从随机数创建哈希,然后从随机的另一个哈希,我把它与几个服务器和本地值放在一起,并采取多少执行。
我知道它是疯狂的代码,坚持它只是为了基准和问题是出于我的好奇心:
CODE:
$salt1 = hash( 'sha1', uniqid( mt_rand( 1, mt_getrandmax() ), true ) );
$token1 = hash( 'sha1', uniqid( mt_rand( 1, mt_getrandmax() ), true ) );
$token2 = hash( 'sha1', $_SERVER['HTTP_ACCEPT_ENCODING'] . $salt1 . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . $token1 . $_SERVER['REMOTE_ADDR'] , true );
此代码完成后,我最终得到时间和值salt1,token1和token2。我没有看到价值观,但幸运的是我扼杀了这些价值观:
$salt1 = e93edda7d1810efb661fe0b4eb85c92256516302
$token1 = ca43d77821ddc90b6b0bfebe1a20f1985547dbeb
$token2 = >)c³‡Ìq£Vé‘Æä¯ËÊü*
正如您所见,在token2中没有hexa值。如果此函数应返回hexa值,该怎么可能?