BuxarNET.ru Support forum
Russian => Вебмастер => Общие обсуждения => WEB Программирование => Тема начата: 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))";