Сравнение строкового значения

Я пытаюсь построить хэш SHA256 из строки, используя hash_hmac

$key = chr(hexdec('17'));
// value of key is blank
$test = chr(hexdec('17')) == '' ? true : false
// value of test is false

поэтому я хочу знать, какова ценность $key как я могу сравнить это

$signature1 = hash_hmac('SHA256', "st=1453362060~exp=1453363260~acl=/*", chr(hexdec('17')));
$signature2 = hash_hmac('SHA256', "st=1453362060~exp=1453363260~acl=/*", "");

// signature1 == 020cb911b6415b14f6b1f955adf55be3b17bcbd77a3987408cb41406e39bfc82
// signature2 == 9356975e2119102a773dbd45e4f06d124246794a451c4aee320888bd3f857377

почему он генерирует другой ключ?

0

Решение

Значение $key не может быть напечатан напрямую, но имеет длину, отличную от пустой строки, поэтому вы не предоставляете те же параметры для hash_hmac функционировать в обоих случаях. Возможно, $test переменная должна быть использована?

if( !defined( 'BR' ) ) define('BR','<br />' );

$key = chr(hexdec('17'));
$test = chr(hexdec('17')) == '' ? true : false;$signature1 = hash_hmac('SHA256', "st=1453362060~exp=1453363260~acl=/*", $test );
$signature2 = hash_hmac('SHA256', "st=1453362060~exp=1453363260~acl=/*", '' );

echo 'key:'.$key.' length:'.strlen($key).' length:'.strlen('').BR;
echo $signature1.BR.$signature2;

выход

key: length:1 length:0
728079ac9885314df2cc1207e8eb79ada329d7d4172ce6574a561c540f039c02
728079ac9885314df2cc1207e8eb79ada329d7d4172ce6574a561c540f039c02
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]