php实现java的mac hmac_sha1加密算法

php如何实现java的加密算法hmac_sha1, 直接上代码,搬运来的备用:

function hmacSha1($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;
}

 

0

这篇文章还没有评论

发表评论