程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php 使用openssl_verify驗證簽名實例程序

php 使用openssl_verify驗證簽名實例程序

編輯:關於PHP編程

下面我們一起來看看關於php 使用openssl_verify驗證簽名實例程序,希望本文章對各位同學會有所幫助。  代碼如下 復制代碼


<?php
/**
 
* 驗證簽名
 
* TobeVerified 待驗證簽名的密文
 
* PlainText 待驗證簽名的明文
 
* CertFile 簽名者公鑰證書
 
* return 驗證成功返回true,失敗返回false(從LastErrMsg屬性獲取失敗原因)
 
*/
function VerifyMsg($TobeVerified, $PlainText, $CertFile,$signature_alg=OPENSSL_ALGO_SHA1)
{
 
   
//用公鑰驗簽
    $fp=fopen($CertFile,"r");
    if(!$fp)
    {
       
//echo "Error Number:-10005, Error Description: ER_FIND_CERT_FAILED(找不到證書)";
        return false;
    }
    $pub_key=fread($fp,8192);
    fclose($fp);
    $res = openssl_get_publickey($pub_key);
    if (1==openssl_verify($PlainText,pack("H" . strlen($TobeVerified), $TobeVerified) , $res,$signature_alg))
    {
       
//print("www.bKjia.c0m提示您:驗證成功"." <br>");
        return true;
    }
    else
    {
       
//echo "Error Number:-10021, Error Description: ER_VERIFY_ERROR(驗簽失敗)|".openssl_error_string();
        return false;
    }
 
}
 
?>

openssl_verify 可能有三個返回值1,0,-1,只有返回1表示驗證簽名成功。

$signature_alg 默認OPENSSL_ALGO_SHA1 ,如果是DSA加密要設置成OPENSSL_ALGO_DSS1

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved