내가 hash_hmacSHA
기능
function hmac($key, $data){
$blocksize = 64;
$hashfunc = 'sha1';
if (strlen($key) > $blocksize)
$key = pack('H*', $hashfunc($key));
$key = str_pad($key, $blocksize, chr(0x00));
$ipad = str_repeat(chr(0x36), $blocksize);
$opad = str_repeat(chr(0x5c), $blocksize);
$hmac = pack('H*', $hashfunc(($key^$opad) . pack('H*', $hashfunc(($key^$ipad) . $data))));
return bin2hex($hmac);
}
예에 큰 문제가 잘못된 일 hash_hmac은 다음과 같습니다
<?php
echo hmac('111111', '222222');//=1558ab6c5ab2b0d1cd129b9ad11527cf33486705
하지만 내
$jeden = 111111;
$dwa =222222;
$hashWiadomosci = hash_hmac('sha1', $jeden, $dwa);
입니다 : 22f91d281349bb3081d3cec9f906572eec5c55b2
어떻게 잘못 되었나요?
'hmac()'이 무슨 기능입니까? –
함수 hmac ($ key, $ data) { \t $ blocksize = 64; \t $ hashfunc = 'sha1'; \t if (strlen ($ key)> $ blocksize) \t \t $ key = pack ('H *', $ hashfunc ($ key)); \t $ key = str_pad ($ key, $ blocksize, chr (0x00)); \t $ ipad = str_repeat (chr (0x36), $ blocksize); \t $ opad = str_repeat (chr (0x5c), $ blocksize); \t $ hmac = pack ('H *', $ hash^($ key^$ opad). pack ('H *', $ hashfunc ($ key^$ ipad). $ data)))); \t return bin2hex ($ hmac); } –
http://stackoverflow.com/posts/42875689/edit 질문을 편집하고 주석에 코드를 드롭하지 말고 감사합니다. –