Показать сообщение отдельно

  #9  
Старый 22.01.2008, 22:36
-=lebed=-
Флудер
Регистрация: 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;  

Не пойму где ошибка, то ли в функциях, то ли при занесении в базу закодированного хэша, хелп плиз!
 
Ответить с цитированием