欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP通過pem文件校驗簽名異常問題解決

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

問題描述:

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

最后經(jīng)過排查,是引用秘鑰文件時,報錯了,錯誤代碼如下

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);
        /** 此處可能會返回false **/
        $res = openssl_get_publickey($pubKey);
        $result =  openssl_verify($signString , base64_decode($sign), $res) === 1;
        openssl_free_key($res);
        return $result; 
    }

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

在這里插入圖片描述

解決方法

第一種

按標準的秘鑰書寫格式修改秘鑰文件每行只能有64個字符,如下

在這里插入圖片描述

第二種

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

$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通過pem文件校驗簽名異常的文章就介紹到這了,更多相關(guān)php em文件校驗簽名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • WordPress上傳圖片錯誤:不是合法的JSON響應解決辦法

    WordPress上傳圖片錯誤:不是合法的JSON響應解決辦法

    這篇文章主要給大家介紹了關(guān)于WordPress上傳圖片錯誤:不是合法的JSON響應的解決辦法,WordPress提示JSON錯誤通常是由于服務器配置或插件沖突引起的,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • set_exception_handler函數(shù)在ThinkPHP中的用法

    set_exception_handler函數(shù)在ThinkPHP中的用法

    這篇文章主要介紹了set_exception_handler函數(shù)在ThinkPHP中的用法,分析了官方給出了set_exception_handler函數(shù)用法說明及示例,并講述了在ThinkPHP中的應用實例,需要的朋友可以參考下
    2014-10-10
  • Laravel中注冊Facades的步驟詳解

    Laravel中注冊Facades的步驟詳解

    這篇文章主要介紹了Laravel中注冊Facades的步驟,詳細分析了Laravel中注冊Facades的原理,實現(xiàn)方法與相關(guān)注意事項,需要的朋友可以參考下
    2016-03-03
  • php實現(xiàn)網(wǎng)站插件機制的方法

    php實現(xiàn)網(wǎng)站插件機制的方法

    這些天想作一個在網(wǎng)站中實現(xiàn)插件的功能,谷歌了一下,發(fā)現(xiàn)一篇文章感覺對我?guī)椭艽?,帖出來和大家分享,廢話不多說,直接帖出代碼供大家分析.
    2009-11-11
  • php教程之phpize使用方法

    php教程之phpize使用方法

    phpize是用來擴展php擴展模塊的,通過phpize可以建立php的模塊,下面介紹一個他的使用方法,需要的朋友可以參考下
    2014-02-02
  • PHP中Closure類的使用方法及詳解

    PHP中Closure類的使用方法及詳解

    Closure類又被大家稱之為匿名函數(shù),在php5.3的時候引入的。顧名思義匿名函數(shù)就是沒有定義名字的函數(shù)。本篇文章給大家介紹php中Closure類的使用及詳解,需要的朋友可以參考下
    2015-10-10
  • PHP設(shè)計模式(觀察者模式)

    PHP設(shè)計模式(觀察者模式)

    這篇文章主要介紹了PHP設(shè)計模式(觀察者模式),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • destoon文章模塊調(diào)用企業(yè)會員資料的方法

    destoon文章模塊調(diào)用企業(yè)會員資料的方法

    這篇文章主要介紹了destoon文章模塊調(diào)用企業(yè)會員資料的方法,非常實用的一個技巧,需要的朋友可以參考下
    2014-08-08
  • php中用unset銷毀變量并釋放內(nèi)存

    php中用unset銷毀變量并釋放內(nèi)存

    在本篇文章里小編給大家分享的是關(guān)于php中用unset銷毀變量并釋放內(nèi)存的實例分享內(nèi)容,需要的朋友們可以參考下。
    2020-05-05
  • Twig模板引擎用法入門教程

    Twig模板引擎用法入門教程

    這篇文章主要介紹了Twig模板引擎用法,分析了Twig模板引擎的基本功能、安裝與簡單使用方法,需要的朋友可以參考下
    2016-01-01

最新評論