
23.01.2008, 11:39
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
ошибка оказалась в функции декодирования хэша из hex в символьный вид:
PHP код:
// Функция декодирования хэша из hex.
function decode_hash($string)
{
$n=0;
$code="";
$decode_hash="";
$l=strlen($string)-1;
do
{
$code=ord($string[$n]); // вот тут если $code - односимвольное представление, то надо добавить 0 перед ним.
$decode_hash.=dechex($code);
}
while ($n++<$l);
return $decode_hash;
}
Исправил так:
PHP код:
// Функция декодирования хэша из hex-строки в символьное представление.
function decode_hash($string)
{
$n=0;
$code="";
$decode_hash="";
$l=strlen($string)-1;
do
{
$code=ord($string[$n]);
$code1=dechex($code);
if (strlen($code1)==1) $code1="0".$code; // если например $code=3 делаем 03
$decode_hash.=$code1;
}
while ($n++<$l);
return $decode_hash;
}
|
|
|