资讯专栏INFORMATION COLUMN

关于PHP的OpenSSL的加密问题

linkFly / 1980人阅读

摘要:最近公司项目中有需要用到的加密和端进行接口验证,再测试环境升级到的时候加密会出现错误,后来多方面检查终于找到原因所在环境下把方法换成需要转换一下秘钥,环境和环境下的秘钥格式有区别暂时不确定是不是操作系统的关系的秘钥验证需要加上头尾。

最近公司项目中有需要用到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, "
"));
        }
        return false;
    }

加头尾的方法:

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

只有踩了坑才会知道有很多东西还是要学习的啊

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26211.html

相关文章

  • php如何openssl_encrypt加密解密

    摘要:密钥长度是位,超过位数密钥被忽略。跨语言做加密解密经常会出现问题,往往是填充方式不对编码不一致或者加密解密模式没有对应上造成。是为了兼容用加密的结果。 最近在对接客户的CRM系统,获取令牌时,要用DES方式加密解密,由于之前没有搞错这种加密方式,经过请教了百度和谷歌两个老师后,结合了多篇文档内容后,终于实现了。 一、DES介绍 DES 是对称性加密里面常见一种,全称为 Data Enc...

    JouyPub 评论0 收藏0
  • PHP 迁移 Mcrypt 至 OpenSSL 加密算法详解

    摘要:下文中我们将分别使用和来实现加解密,二者同步加解密的要点为使用何种填充算法。下面我们给出填充算法的实现填充算法移去填充算法默认使用自动对待加密数据进行填充以对齐加密算法数据块长度。需固定使用,并通过调整的长度,来实现加密算法。 对称加解密算法中,当前最为安全的是 AES 加密算法(以前应该是是 DES 加密算法),PHP 提供了两个可以用于 AES 加密算法的函数簇:Mcrypt 和 ...

    AlanKeene 评论0 收藏0
  • Golang 实现RSA 加密解密(附带php

    摘要:安全总是很重要的,各个语言对于通用的加密算法都会有实现。对于和加密算法本身,请查阅相关资料在中,很多功能经常是一个函数解决而中的却不是。该文讨论加密解密。一概要这是一个非对称加密算法,一般通过公钥加密,私钥解密。 安全总是很重要的,各个语言对于通用的加密算法都会有实现。前段时间,用Go实现了RSA和DES的加密解密,在这分享一下。(对于RSA和DES加密算法本身,请查阅相关资料) 在P...

    kun_jian 评论0 收藏0
  • PHP7.1废弃加密方法替换方案

    摘要:废弃加密方法替换方案前瞻最近,我负责在重构项目的支付渠道,因为之前都是接一个渠道在的方式,代码显的比较混乱,恰巧整体项目在微服务化,所以我们决定将支付做成一个微服务,独立出来。 PHP7.1废弃加密方法替换方案 前瞻 最近,我负责在重构项目的支付渠道,因为之前都是接一个渠道在ifelse的方式,代码显的比较混乱,恰巧整体项目在微服务化,所以我们决定将支付做成一个微服务,独立出来。当前比...

    afishhhhh 评论0 收藏0
  • PHP 与 C++ RSA加解密问题记录

    摘要:第二次访问接口,客户端需使用返回公钥加密访问参数,之后将加密后的参数和一起发送给服务端进行验证。关于函数的详细介绍可以看上一位朋友的博客,链接在此简单总结用加密公钥传递给用公钥加密信息传递给解密 RSA非对称加密,在网络鉴权中使用很多。本人也是在PHP与C++交互鉴权时出现问题,在解决问题过程中发现,网上对相关问题的描述很少,所在这里记录下,希望对遇到相似问题的朋友有所帮助。 问题情景...

    testHs 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<