最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP通過(guò)pem文件校驗(yàn)簽名異常問題解決

 更新時(shí)間:2023年09月16日 10:10:42   作者:whynogome  
在對(duì)接第三方支付過(guò)程中,支付成功異步回調(diào)時(shí),校驗(yàn)簽名,一直無(wú)法通過(guò),最后經(jīng)過(guò)排查,是引用秘鑰文件時(shí),報(bào)錯(cuò)了,本文給大家分享PHP通過(guò)pem文件校驗(yàn)簽名異常問題解決方法,需要的朋友可以參考下

問題描述:

在對(duì)接第三方支付過(guò)程中,支付成功異步回調(diào)時(shí),校驗(yàn)簽名,一直無(wú)法通過(guò)。但是在支付成功時(shí)有一個(gè)同步返回也需要校驗(yàn)簽名,用的是同樣的校驗(yàn)方法,都沒有問題。當(dāng)把回調(diào)時(shí)傳遞的參數(shù)放在postman中,手動(dòng)發(fā)起回調(diào),也可以通過(guò)簽名校驗(yàn)

最后經(jīng)過(guò)排查,是引用秘鑰文件時(shí),報(bào)錯(cuò)了,錯(cuò)誤代碼如下

public static function verify(array $data, $sign)
    {
        if (empty($data) || empty($sign)) {
            return "";
        }
        //code+msg+date+result,
        $code   = $data['code'] ?? '';
        $msg    = $data['msg'] ?? '';
        $date   = $data['date'] ?? '';
        $result = $data['result'] ?? '';
        $signString = $code . $msg . $date . $result;
		$mallbook_key_file = __DIR__.'rsa_public.pem';
        $pubKey = file_get_contents($mallbook_key_file);
        /** 此處可能會(huì)返回false **/
        $res = openssl_get_publickey($pubKey);
        $result =  openssl_verify($signString , base64_decode($sign), $res) === 1;
        openssl_free_key($res);
        return $result; 
    }

上面代碼其實(shí)是沒有問題的,問題出在rsa_public.pem文件的內(nèi)容,秘鑰內(nèi)容都寫在同一行了,沒有按照標(biāo)準(zhǔn)的秘鑰格式書寫,如下

在這里插入圖片描述

解決方法

第一種

按標(biāo)準(zhǔn)的秘鑰書寫格式修改秘鑰文件每行只能有64個(gè)字符,如下

在這里插入圖片描述

第二種

直接在代碼中拼接秘鑰字符串

$pubKey ='MIGfMA0GCSqGSIb3DQE***************************************
********************************************************************
***************1mwyu7RTDC8Wp7LGddnlkJsmL8masgMxA6cc9NwIDAQAB';
    $str= chunk_split($pubKey, 64, "\n");
    $key = "-----BEGIN PUBLIC KEY-----\n$str-----END PUBLIC KEY-----\n";
    $signature = base64_decode($sign);
    return openssl_verify($signString, $signature, $key, OPENSSL_ALGO_SHA1) === 1;

到此這篇關(guān)于PHP通過(guò)pem文件校驗(yàn)簽名異常的文章就介紹到這了,更多相關(guān)php em文件校驗(yàn)簽名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

桐庐县| 乾安县| 北宁市| 揭东县| 肃北| 开封县| 鄯善县| 屏山县| 石门县| 揭西县| 太湖县| 安化县| 垣曲县| 定结县| 临夏市| 澎湖县| 佛学| 梓潼县| 陇川县| 梁平县| 溧水县| 正蓝旗| 神池县| 义马市| 来安县| 内江市| 徐水县| 蒙山县| 恭城| 斗六市| 蒲江县| 临猗县| 周宁县| 攀枝花市| 蓬溪县| 印江| 乐清市| 宜昌市| 榆社县| 响水县| 陇川县|