PHP中HMAC-SHA1加密算法如何实现的

Admin 2022-08-25 群英技术资讯 505 次浏览

今天就跟大家聊聊有关“PHP中HMAC-SHA1加密算法如何实现的”的内容,可能很多人都不太了解,为了让大家认识和更进一步的了解,小编给大家总结了以下内容,希望这篇“PHP中HMAC-SHA1加密算法如何实现的”文章能对大家有帮助。


HMAC-SHA1加密算法

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;
}

php openssl(SHA1WithRSA) 签名 验签

签名:

public function wjSign($data){
    $key = openssl_pkey_get_private(file_get_contents($this->privateKeyPathWJ));
    openssl_sign($data, $sign, $key, OPENSSL_ALGO_SHA1);
    $sign = base64_encode($sign);
    return $sign;
}

验签:

public function wjVerify($data, $sign){
    $sign = base64_decode($sign);
    $key = openssl_pkey_get_public(file_get_contents($this->publicKeyPathWJ));
    $result = openssl_verify($data, $sign, $key, OPENSSL_ALGO_SHA1) === 1;
    return $result;
}

 


以上就是关于“PHP中HMAC-SHA1加密算法如何实现的”的介绍了,感谢各位的阅读,如果大家想要了解更多相关的内容,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服