PHP中OpenSSL加密问题整理

yipeiwu_com7年前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英文字母大小写转换函数小结

每个单词的首字母转换为大写:ucwords()复制代码 代码如下:<?php$foo = 'hello world!';$foo = ucwords($foo); &nb...

php创建多级目录的方法

本文实例讲述了php创建多级目录的方法。分享给大家供大家参考。具体实现方法如下: <?php /* 写出一个能创建多级目录的PHP函数 */ function...

php版阿里云OSS图片上传类详解

本文实例讲述了php版阿里云OSS图片上传类。分享给大家供大家参考,具体如下: 1.阿里云基本函数 /** * 把本地变量的内容到文件 * 简单上传,上传指定变量的内存值作为ob...

如何打开php的gd2库

如何打开php的gd2库

第一步:找到 php.ini 通常,该文件在php安装目录下,如果忘记路径可以在你使用的web服务软件上查询。 第二步:用记事本打开该文件,并按 “ctrl+F” 输入 “extens...

php 无限级分类 获取顶级分类ID

有这样一个表,id是分类的ID,name是分类名称,pid是上级分类的ID。 现在有个分类ID,程序要找到它上级的上级的上级……分类的ID,简单说就是找出顶级分类的ID。 比如“新鲜水果...