如何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 關注
- 1198 瀏覽
添加回答
舉報
0/150
提交
取消