php openssl des ecb,php7.2 des-ede3-ecb加密报错:openssl_encrypt():Unknown cipher algorithm 落叶随风博客...

最近做项目时用到了3des加密算法,由于环境版本是php7.2 只能用openssl_encrypt()来加密:/* php 版本大于7.2  3des ecb模式加密*/

$res    = openssl_encrypt($value, 'des-ede3-ecb', $this->key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING);

return $res;

问题:

以上加密写法在测试环境正常,确认openssl扩展已打开,但是在上正式环境时报错:openssl_encrypt():Unknown cipher algorithm。

0d3e594861cb438e54daa9781dccc8cd.png

最终解决方法:/* 将'des-ede3-ecb' 改为 'des-ede3' */

$res    = openssl_encrypt($value, 'des-ede3', $this->key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING);

return $res;

原因分析:(个人分析)正式线环境是linux, php里并不支持 "des-ede3-ecb" 这种模式,所以报错,兼容的方法为:"des-ede3"。

补充:

要实现极强的兼容效果,不太注重速度的情况下建议安装使用 phpseclib:composer require phpseclib/phpseclib:~2.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值