
22.01.2008, 22:36
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
С нами:
10467746
Репутация:
4738
|
|
Функция кодирования хэша содержит ошибку:
PHP код:
// Функция кодирования строки хэша в hex
function code_hash($s)
{
$n=0;
$hash_code="";
$code="";
$l=strlen($s)-1;
do
{
$code='0x'.$s[$n].$s[$n+1];
$hash_code.=chr(hexdec($code));
$n++;
}
while ($n++<$l);
return $hash_code;
}
Например берём хэш
952f26f83e66b8881ae7e603e1643e901f5b5220
кодируем/декодируем получаем:
952f26f83e66b8881ae7e63e1643e901f5b52
как видно пропали два нуля и двойка (3 символа!)
Функция декодирования:
PHP код:
// Функция декодирования хэша из hex.
function decode_hash($string)
{
$n=0;
$code="";
$decode_hash="";
$l=strlen($string)-1;
do
{
$code=ord($string[$n]);
$decode_hash.=dechex($code);
}
while ($n++<$l);
return $decode_hash;
}
Не пойму где ошибка, то ли в функциях, то ли при занесении в базу закодированного хэша, хелп плиз!
|
|
|