您当前的位置: 首页 > 网站编程 > PHP教程 > php使用openssl_verify验证签名实例程序

php使用openssl_verify验证签名实例程序

作者:不详 来源:网络 发布时间: 2014-08-14 21:35 点击:
代码如下 ?php /** * 验证签名 * TobeVerified 待验证签名的密文 * PlainText 待验证签名的明文 * CertFile 签名者公钥证书 * return 验证成功返回true,失败返回false(从LastErrMsg属性获取失败原因) */ function VerifyMsg($TobeVerified, $PlainText, $CertFile,$si

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.111cn.net提示您:验证成功"." <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
分享到:
本文"php使用openssl_verify验证签名实例程序"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4