如何C#使用HMAC-SHA1算法生成oauth
2 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
用JQ写的
1234567891011121314151617181920212223242526272829303132333435 | /** * @brief 使用HMAC-SHA1算法生成oauth_signature签名值 * * @param $key 密钥 * @param $str 源串 * * @return 签名值 */ function getSignature($str, $key) { $signature = "" ; if (function_exists( 'hash_hmac' )) { $signature = base64_encode(hash_hmac( "sha1" , $str, $key, true )); } else { $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) . $str ) ) ) ); $signature = base64_encode($hmac); } return $signature; } |
- 2 回答
- 0 关注
- 1160 浏览
添加回答
举报
0/150
提交
取消