使用OpenSSL那么需要先了解一下http://www.cnblogs.com/wt645631686/p/8390936.html

<?php
//demo
$json = '{"sign":"myYCvJqsDJUNX67qJnklrVY025oSQmm4D4bIVdHZQzihV+G8G848MmAAatAxCDuCmJbenI0jRZk7p22HjFT0nRykEeSmTExiT+Jx7\/2GQn5grEA3qd7i9gCPz\/E7+n9mleukLuJoXeceVp626c4gLZTKiPPcmbsJIfwfNexCBZXb2B7OmcgvPqRYki8b8aZy3E\/DDdFABOyXr+OEuswooYzz1ivdL+8tfWXhejs54UaeS0IscoWBYXj2Bws8lPpCzC3OCGZV1bErlM7VekfpoNMO\/KOpJpPp8kA838EBp7uD\/QMKJxf0KeS4qta7E3aWzrwwj97OUKkJOWA2CBFcfA==","pay_data":"{\"amount\":\"200\",\"pay_time\":\"1529975466\",\"appOrderId\":\"31801806260910429835893414\",\"orderId\":\"1000180626057312701\",\"uId\":\"2\",\"appGoodsId\":\"1\",\"test_id\":\"1\"}"}'; /**
* 验证签名
*/
private function _verify_code($json = '') {
$sign = $json['sign'];
$data = $json['data'];
$data_arr = json_decode($data, true);
$test_id = intval($date_arr['test_id']);
if ($test_id == 1) {
$publicKey = <<<EOF
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2hcmCgXI9zZXJKWvkWZa
F/3kuDahyjHud+hmAN1/JA86GMDK64hEPV4CTHYT+WLZu3uT21f/b8IiDpXUvnwf
OVW+QCk7b4aaaaaaaaaaaaaaaaaaaaaaaaaaaaaP/qAjutxByIcJyuy1JS/CuU2D
tvMVQ/pfV4r+99kRZ4pu+ZduD/yq5cEXZniQMnmtJI3TW389ESMyFaOzqclraDci
M1zBkm4rbcwUDJpm+Te6zoqSEy06Z0RR4HL2aOuBIDaCN7sodSmIpcA4xlI6n0z2
2Jq6K/yyOBGyj7unAbpS5iFuwEV5ICrAt9JezvgJ7wJIXWwxaXs4v+M/a87QiNZw
FQIDAQAB
-----END PUBLIC KEY-----
EOF;
}else {
$publicKey = <<<EOF
EOF;
}
$res = openssl_get_publickey($publicKey);
$result = (bool)openssl_verify($data, base64_decode($sign), $res);
openssl_free_key($res);
return $result; //bool
}

PHP中使用OpenSSL下openssl_verify验证签名案例的更多相关文章

  1. CryptAPI 数字签名 与 Openssl 验证签名

    这段时间要实现一个认证协议,分为客户端和服务器端,客户端使用windows操作系统,服务器端使用linux操作系统,在客户端下(windows),使用windows证书库中的签名证书对消息进行签名(使 ...

  2. openssl生成签名与验证签名

    继上一篇RSA对传输信息进行加密解密,再写个生成签名和验证签名. 一般,安全考虑,比如接入支付平台时,请求方和接收方要互相验证是否是你,就用签名来看. 签名方式一般两种,对称加密和非对称加密.对称加密 ...

  3. (8) openssl rsautl(签名/验证签名/加解密文件)和openssl pkeyutl(文件的非对称加密)

    rsautl是rsa的工具,相当于rsa.dgst的部分功能集合,可用于生成数字签名.验证数字签名.加密和解密文件. pkeyutl是非对称加密的通用工具,大体上和rsautl的用法差不多,所以此处只 ...

  4. openssl使用多种方法签名、自签名

    1.自建CA 自建CA的机制:1.生成私钥2.创建证书请求,在创建证书请求过程中由于需要提供公钥,而公钥来源于私钥,所以也需要指定私钥来创建证书请求,而实际上这里提供私钥的作用就是提取其中的公钥,这一 ...

  5. .NET Core 使用RSA算法 加密/解密/签名/验证签名

    前言 前不久移植了支付宝官方的SDK,以适用ASP.NET Core使用支付宝支付,但是最近有好几位用户反应在Linux下使用会出错,调试发现是RSA加密的错误,下面具体讲一讲. RSA在.NET C ...

  6. .net core中使用openssl的公钥私钥进行加解密

    这篇博文分享的是 C#中使用OpenSSL的公钥加密/私钥解密 一文中的解决方法在 .net core 中的改进.之前的博文针对的是 .NET Framework ,加解密用的是 RSACryptoS ...

  7. iOS使用Security.framework进行RSA 加密解密签名和验证签名

    iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...

  8. php接口数据加密、解密、验证签名代码实例

    php接口数据加密.解密.验证签名 代码非常easy,这里就不多废话了,直接奉上代码 <?php /** * 数据加密.解密.验证签名 * @edit http://www.lai18.com ...

  9. Android Studio环境下代码混淆+签名打包

    Android Studio环境下代码混淆+签名打包 作者 Mr_冯先生 关注 2016.08.21 01:10 字数 1040 阅读 734评论 5喜欢 34 注:本文使用的Android Stud ...

随机推荐

  1. iOS文件处理介绍(一)

    一.在Documents.tmp和Library中存储文件 Documents:用于存储应用程序中经常需要读取或写入的常规文件. tmp:用于存储应用程序运行时生成的文件.(随着应用程序的关闭失去了利 ...

  2. 互斥锁mutex

    https://blog.csdn.net/rqc112233/article/details/50015069 //g++ mute.cpp -o mute -g -lrt -lpthread #i ...

  3. java FileUtil(文件操作类)

    package tools; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; i ...

  4. jstl标签怎么实现分页中下一页

    <script type="text/javascript">           //分页按钮处理        function goPageAction(page ...

  5. c# 给button添加不规则的图片以及用pictureBox替代button响应点击事件

    1.Flat button 用这个方法,前提是要把button的type设置为Flat button1.TabStop = false;button1.FlatAppearance.BorderSiz ...

  6. 170627、springboot编程之定时任务

    springboot定时任务,比较简单! 1.编写DemoSchedule.java类 package com.rick.common.schedule; import org.springframe ...

  7. js封装正则验证

    //根据不同的验证内容,返回相应的正则表达式 function returnRegString(regName) { if (regName == "email") { retur ...

  8. 徐州网络赛H-Ryuji doesn't want to study【线段树】

    Ryuji is not a good student, and he doesn't want to study. But there are n books he should learn, ea ...

  9. 持续交付的Mesos与Docker导入篇

    变革这个词在当今的数字化时代司空见惯,IT技术每过一段时间就会有一起革新,从WEB2.0.虚拟化.云计算.大数据.微架构.DevOps再到今天的容器Docker与Mesos. Docker的出现方便了 ...

  10. 在Silverlight 5 项目中创建单元测试项目

    下载安装Silverlight ToolKit:测试框架程序集路径:C:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Toolkit\dec ...