PHP 的 HMAC_SHA1算法 实现
1 PHP 的 HMAC_SHA1算法 实现
2 http://www.tuicool.com/articles/7322A3
3
4 function getSignature($str, $key) {
5 $signature = "";
6 if (function_exists('hash_hmac')) {
7 $signature = bin2hex(hash_hmac("sha1", $str, $key, true));
8 } else {
9 $blocksize = 64;
10 $hashfunc = 'sha1';
11 if (strlen($key) > $blocksize) {
12 $key = pack('H*', $hashfunc($key));
13 }
14 $key = str_pad($key, $blocksize, chr(0x00));
15 $ipad = str_repeat(chr(0x36), $blocksize);
16 $opad = str_repeat(chr(0x5c), $blocksize);
17 $hmac = pack(
18 'H*', $hashfunc(
19 ($key ^ $opad) . pack(
20 'H*', $hashfunc(
21 ($key ^ $ipad) . $str
22 )
23 )
24 )
25 );
26 $signature = bin2hex($hmac);
27 }
28 return $signature;
29 }