本文是上一篇文章的兄弟篇,上篇文章介绍了客户端的sdk中如何基于JAVA/PHP/C#使用RSA私钥签名,然后服务端基于JAVA使用RSA公钥验签,客户端签名/服务端验签的模式只能帮助服务端检查客户端来的请求数据是否被篡改,同样的,客户端也需要对服务端的返回结果检查是否被篡改,因此就引出了本片文章。

Java版的验签和加签均已在上一篇文章中分析过,客户端和服务端的逻辑是一样的,此处不再赘述。下面重点分析如何基于RSA的PEM文件,使用php和c#进行验签。

1、php验签

    function verify($data, $sign, $rsaPublicKeyFilePath)  {

    //读取公钥文件

    $pubKey = file_get_contents($rsaPublicKeyFilePath);


    //转换为openssl格式密钥

    $res = openssl_get_publickey($pubKey);


    //调用openssl内置方法验签,返回bool值

    $result = (bool)openssl_verify($data, base64_decode($sign), $res);


    //释放资源

    openssl_free_key($res);


    //返回资源是否成功

    return $result;
}

更多相关文章

  1. 支付宝手机接口,服务端PHP验证失败,求助
  2. PHP判断客户端是PCweb端还是移动手机端方法
  3. [微信支付] 服务端PHP开发纪要
  4. 如何使用本地phmyadmin客户端访问远程服务器?
  5. MySQL客户端输出窗口显示中文乱码问题解决办法
  6. mysql客户端工具使用
  7. 解决Linux主机上的 远程MySQL客户端无法连接的问题
  8. 客户端处理和服务器端处理,哪个比较快?
  9. 将大型阵列传输到客户端

随机推荐

  1. Android ListView动态刷新
  2. 横竖屏切换时不销毁当前activity 和 锁定
  3. Android多媒体应用——ImageSwitcher
  4. ScrollView滚动条的各种设置
  5. Android(安卓)RecyclerView:设置指定位置
  6. android中获取到当前线程
  7. android 结构分析
  8. ADT在线安装与更新
  9. 打包APK时两个常见问题Android(安卓)plat
  10. Android 源码编译make的错误处理