BuxarNET.ru Support forum

Russian => Вебмастер => Общие обсуждения => WEB Программирование => Тема начата: Admin от Июня 13, 06, 2012, 16:38:06 (EEST)

Название: PHP5.3 и функция mhash
Отправлено: Admin от Июня 13, 06, 2012, 16:38:06 (EEST)
Как известно в PHP 5.3. функция mhash больше не поддерживается.

Но альтернатива все же есть.

 Похожий функционал имеет функция hash_hmac (https://forum.buxarnet.ru/go.php?url=aHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5oYXNoLWhtYWMucGhw). Но к сожалению он по разному использует кодирование данных чем mhash. В этом можно убедиться создав тестовый файлик с таким кодом:
 
 1.php:
 
 echo "mhash(MHASH_SHA1, 11111, 22222)";
 echo "<br>";
 echo "hash_hmac("sha1", 11111, 22222)";
 
 
 где MHASH_SHA1 и "sha1" это один и тот же метод кодирования, который выражается по разному в функциях
 У нас будут отображаться разные хеши одного и того набора символов.
 
 Решение в использовании функции pack (https://forum.buxarnet.ru/go.php?url=aHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLnBhY2sucGhw) для приведения хеша в соответствие с выводом mhash!
 
 РЕШЕНИЕ. Такой комбинацией можно заменить mhash:
 1.php:
 
 echo "mhash(MHASH_SHA1, 11111, 22222)";
 echo "<br>";
 echo "pack("H*",hash_hmac("sha1", 11111, 22222))";