使用HMAC-SHA1簽名方法詳解
更新時(shí)間:2013年06月26日 08:59:59 作者:
本篇文章是對(duì)使用HMAC-SHA1的簽名方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
加密算法:
使用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);
}
return $signature;
}
使用HMAC-SHA1簽名方法
復(fù)制代碼 代碼如下:
/**
* @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;
}
相關(guān)文章
安裝apache2.2.22配置php5.4(具體操作步驟)
本篇文章是對(duì)安裝apache2.2.22配置php5.4的具體操作步驟進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06關(guān)于php操作mysql執(zhí)行數(shù)據(jù)庫(kù)查詢的一些常用操作匯總
本篇文章是對(duì)關(guān)于php操作mysql執(zhí)行數(shù)據(jù)庫(kù)查詢的一些常用操作進(jìn)行了詳細(xì)的匯總介紹,需要的朋友參考下2013-06-06php中函數(shù)的形參與實(shí)參的問題說(shuō)明
在定義或者使用php函數(shù)時(shí),應(yīng)該注意形參個(gè)數(shù)和實(shí)參個(gè)數(shù)的對(duì)應(yīng)關(guān)系。2010-09-09php獲取json數(shù)據(jù)所有的節(jié)點(diǎn)路徑
這篇文章主要介紹了php獲取json數(shù)據(jù)所有的節(jié)點(diǎn)路徑的方法和實(shí)例,有需要的小伙伴可以參考下。2015-05-05PHP將MySQL的查詢結(jié)果轉(zhuǎn)換為數(shù)組并用where拼接的示例
這篇文章主要介紹了PHP將MySQL的查詢結(jié)果轉(zhuǎn)換為數(shù)組并用where拼接的示例,這樣處理where條件時(shí)便可以在一定程度上優(yōu)化查詢和轉(zhuǎn)化的性能,需要的朋友可以參考下2016-05-05通過php動(dòng)態(tài)傳數(shù)據(jù)到highcharts
本文主要介紹了通過php動(dòng)態(tài)傳數(shù)據(jù)到highcharts的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04php實(shí)現(xiàn)網(wǎng)站文件批量壓縮下載功能
這篇文章主要介紹了php實(shí)現(xiàn)網(wǎng)站文件批量壓縮下載功能,文章提供了一個(gè)將文件壓縮為zip格式的示例,感興趣的小伙伴們可以參考一下2015-10-10