热门标签 | 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. ?> 

推荐阅读
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 本文详细介绍了如何在Windows和Linux系统上配置Openfire服务器,包括安装步骤、数据库配置及端口映射等关键环节。 ... [详细]
  • 本文详细介绍了如何使用Linux下的mysqlshow命令来查询MySQL数据库的相关信息,包括数据库、表以及字段的详情。通过本文的学习,读者可以掌握mysqlshow命令的基本语法及其常用选项。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • Windows环境下Oracle数据库迁移实践
    本文详细记录了一次在Windows操作系统下将Oracle数据库的控制文件、数据文件及在线日志文件迁移至外部存储的过程,旨在为后续的集群环境部署做好准备。 ... [详细]
  • 本文详细探讨了如何根据不同的应用场景选择合适的PHP版本,包括多版本切换技巧、稳定性分析及针对WordPress等特定平台的版本建议。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 实现Win10与Linux服务器的SSH无密码登录
    本文介绍了如何在Windows 10环境下使用Git工具,通过配置SSH密钥对,实现与Linux服务器的无密码登录。主要步骤包括生成本地公钥、上传至服务器以及配置服务器端的信任关系。 ... [详细]
  • PHP中Smarty模板引擎自定义函数详解
    本文详细介绍了如何在PHP的Smarty模板引擎中自定义函数,并通过具体示例演示了这些函数的使用方法和应用场景。适合PHP后端开发者学习。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
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社区 版权所有