Written in JQ/**? *?@brief?Use HMAC-SHA1 algorithm to generate oauth_signature signature value? *? *?@param?$key?Key? *?@param?$str ?Source string? *? *?@return?Signature value? */?
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(?
p>'H*',?$hashfunc(?
($key?^?$ipad)?.?$str?
)?
)?
)?
);?
$signature?=?base64_encode($hmac);?
}?
return?$signature;?
}