I'm just trying some benchmark on hash functions and their speed and in one case I encoutred strange issue. Code is easy, i create hash from random number, then another hash from random and the i put this together with few serverand local values and take how much execution take.
I know that it's crazy code, nut it's just for benchmark and question is out of my curiosity:
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 );
After this code is finished I end up with time and values salt1, token1 and token2. I was not looking at values, but just from luck i encoutred this values:
$salt1 = e93edda7d1810efb661fe0b4eb85c92256516302
$token1 = ca43d77821ddc90b6b0bfebe1a20f1985547dbeb
$token2 = >)c³‡Ìq£Vé‘Æä¯ËÊü*
As you cen see, in token2 there is no hexa value. How is it possible if this function should return hexa values?