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 }