为了账号安全,请及时绑定邮箱和手机立即绑定

php实现java的mac hmac_sha1加密算法

php实现java的mac hmac_sha1加密算法

炎炎设计 2019-03-01 11:09:40
求教,php如何实现java的加密算法hmac_sha1?
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

/**
 * @使用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;
查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 606 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信