Как сделать хэш md5 для некоторых шестнадцатеричных значений? - PullRequest
4 голосов
/ 12 августа 2011

Я новичок в php. что мне нужно сделать, это сделать хэширование md5 для некоторых шестнадцатеричных значений. Например, я хочу сделать хэш md5 0x14. фактический хеш этого:

15f41a2e96bae341dde485bb0e78f485

но я не могу воспроизвести это в PHP.

md5 (0x14);

Не работает, даже

md5(chr(hexdec(14)));

не работает. вызвать его не фактический символ

Я испробовал все возможности, которые мог придумать, искал бесчисленные часы в Интернете, все еще ничего. Как я могу сделать эту работу?

Ответы [ 4 ]

4 голосов
/ 12 августа 2011
php> echo md5(chr(0x14))
15f41a2e96bae341dde485bb0e78f485
3 голосов
/ 12 августа 2011

Это работает для меня

md5(chr(0x14)); // 15f41a2e96bae341dde485bb0e78f485

2 голосов
/ 12 августа 2011

Вы можете записать двоичные значения в любую строку в двойных кавычках с шестнадцатеричной escape-последовательностью , возможно, это поможет ( Demo ):

md5("\x14"); # 15f41a2e96bae341dde485bb0e78f485
2 голосов
/ 12 августа 2011

hexdec принимает строку, поэтому ваш пример сработает, если вы заключите в кавычку '14'

md5(chr(hexdec('14')));

или вы можете использовать шестнадцатеричный числовой литерал

md5(chr(0x14));
...