PHP
—
实例 使用 HMAC-SHA1 签名方法
本篇文章是对使用 HMAC-SHA1 的签名方法进行了详细的分析介绍,需要的朋友参考下
加密算法:
使用 HMAC-SHA1 签名方法
代码如下:
/**
* @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
);