PHP中OpenSSL加密问题整理

yipeiwu_com5年前PHP代码库

最近公司项目中有需要用到OpenSSL的加密和java端进行接口验证,再测试环境升级到PHP7的时候加密会出现错误,后来多方面检查终于找到原因所在:

PHP7环境下把openssl_get_privatekey方法换成openssl_pkey_get_private

需要转换一下秘钥,window环境和Linux环境下的秘钥格式有区别(暂时不确定是不是操作系统的关系)

PHP的秘钥验证需要加上头尾。

这里贴上附属方法

转换秘钥格式的方法:

function transJavaRsaKeyToPhpOpenSSL($content) {
    if ($content) {
      return trim(chunk_split($content, 64, "\n"));
    }
    return false;
  }

加头尾的方法:

function appendFlags($content, $isPublic = true) {
    if ($isPublic) {
      return "-----BEGIN PUBLIC KEY-----\n" . $content . "\n-----END PUBLIC KEY-----\n";
    }
    else {
      return "-----BEGIN PRIVATE KEY-----\n" . $content . "\n-----END PRIVATE KEY-----\n";
    }
  }

以上就是本次遇到OPENSSL加密问题的小经验,大家还有问题的话在下方留言讨论吧。

相关文章

php实现过滤字符串中的中文和数字实例

本文实例讲述了php实现过滤字符串中的中文和数字。分享给大家供大家参考。具体实现方法如下: function getChinese($string,$encode="GBK") {...

PHP中实现接收多个name相同但Value不相同表单数据实例

最近在一个询盘留言管理系统时候一个问题,留言的前台的表单当中出现很多name值相同的input框,这些框是由用户填写的各不相同的值,现在要迁移到php平台上,而且要求不能改变前台的任何表...

为Plesk PHP7启用Oracle OCI8扩展方法总结

注:本文适用于RHEL/CentOS发行版。 步骤1.安装构建自定义PHP 7模块所需的devel包 # yum install plesk-php70-devel gcc gli...

攻克CakePHP系列三 表单数据增删改

攻克CakePHP系列三 表单数据增删改

这里声明一点,上例中不小心把数据库表中lastupd字段错打成lastudp,本例子予以更正。 除上诉字段数据库与上例一致。 工程仍沿用上例,如下图: 代码依次为: database....

在PHP程序中使用Rust扩展的方法

 C或PHP中的Rust 我的基本出发点就是写一些可以编译的Rust代码到一个库里面,并写为它一些C的头文件,在C中为被调用的PHP做一个拓展。虽然并不是很简单,但是很有趣。...