mac algorithm - php implements java's mac hmac_sha1 encryption algorithm
迷茫
迷茫 2017-05-16 13:13:28
0
1
596

Please tell me how to implement Java’s encryption algorithm hmac_sha1 in PHP?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

reply all(1)
淡淡烟草味
/**
 * @使用HMAC-SHA1算法生成oauth_signature签名值
 *
 * @param $key  密钥
 * @param $str  源串
 *
 * @return 签名值
 */
 
function get_signature($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;
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template