使用HMAC-SHA1签名方法详解

网络编程 2021-07-05 09:49www.168986.cn编程入门
本篇文章是对使用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);
        }
        return $signature;
    }

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by