热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

下面我们一起来看看关于php使用openssl_verify验证签名实例程序,openssl_verify可能有三个返回值1,0,-1,只有返回1表示验证签名成功,$signature_alg默认OPENSSL_ALGO_SHA1,如果是DSA加密要设...
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
当前位置:首页 > PHP教程 > php函数 > 列表
php 使用openssl_verify验证签名实例程序
发布: 来源:  添加日期:2014-08-21 14:39:09 浏览: 评论:0 

下面我们一起来看看关于php 使用openssl_verify验证签名实例程序,openssl_verify 可能有三个返回值1,0,-1,只有返回1表示验证签名成功,$signature_alg 默认OPENSSL_ALGO_SHA1,如果是DSA加密要设置成OPENSSL_ALGO_DSS1,实例代码如下:

  1. /**  
  2.   
  3. * 验证签名  
  4.   
  5. * TobeVerified 待验证签名的密文  
  6.   
  7. * PlainText 待验证签名的明文  
  8.   
  9. * CertFile 签名者公钥证书  
  10.   
  11. * return 验证成功返回true,失败返回false(从LastErrMsg属性获取失败原因)  
  12.   
  13. */ 
  14. function VerifyMsg($TobeVerified$PlainText$CertFile,$signature_alg=OPENSSL_ALGO_SHA1)  
  15. {  
  16.    
  17.      
  18. //用公钥验签  
  19.     $fp=fopen($CertFile,"r");  
  20.     if(!$fp)  
  21.     {  
  22.          
  23. //echo "Error Number:-10005, Error Description: ER_FIND_CERT_FAILED(找不到证书)";  
  24.         return false;  
  25.     }  
  26.     $pub_key=fread($fp,8192);  
  27.     fclose($fp);  
  28.     $res = openssl_get_publickey($pub_key);  
  29.     if (1==openssl_verify($PlainText,pack("H" . strlen($TobeVerified), $TobeVerified) , $res,$signature_alg))  
  30.     {  
  31.          
  32. //print("www.phpfensi.com提示您:验证成功"." 
    "); 
     
  33.         return true;  
  34.     }  
  35.     else 
  36.     {  
  37.          
  38. //echo "Error Number:-10021, Error Description: ER_VERIFY_ERROR(验签失败)|".openssl_error_string();  
  39.         return false;  
  40.     }  
  41.    
  42. }  
  43.    
  44. ?> 

推荐阅读
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • 深入理解Shell脚本编程
    本文详细介绍了Shell脚本编程的基础概念、语法结构及其在操作系统中的应用。通过具体的示例代码,帮助读者掌握如何编写和执行Shell脚本。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 0626TP整理二(调试模式,空操作,跨控制器调用,跨方法跳转redirect(),框架语法,创建model模型)...
    一、调试模式(入口文件:index.php)define(APP_DEBUG,true);调试模式define(APP_DEBUG,FALSE);运行模 ... [详细]
  • 落樱3D v0.5是一款在Android平台上发布的3D美少女格斗游戏,本次更新带来了多项新功能和优化。 ... [详细]
  • 作者:守望者1028链接:https:www.nowcoder.comdiscuss55353来源:牛客网面试高频题:校招过程中参考过牛客诸位大佬的面经,但是具体哪一块是参考谁的我 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文探讨了《魔兽世界》中红蓝两方阵营在备战阶段的策略与实现方法,通过代码展示了双方如何根据资源和兵种特性进行战士生产。 ... [详细]
  • PHP 时间与日期工具类:星座、干支、生肖的实现
    本文介绍了一个PHP时间与日期工具类,涵盖了时区设置、有效日期和时间检查、星座、干支、生肖计算等功能。该工具类特别适用于需要处理中国农历及西方星座的应用场景。 ... [详细]
author-avatar
php.com
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有