PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案


Posted in PHP onOctober 17, 2017

前言

mcrypt 扩展已经过时了大约10年,并且用起来很复杂。因此它被废弃并且被 OpenSSL 所取代。 从PHP 7.2起它将被从核心代码中移除并且移到PECL中。

PHP手册在7.1迁移页面给出了替代方案,就是用OpenSSL取代MCrypt.

示例代码

/**
 * [AesSecurity aes加密,支持PHP7.1]
 */
class AesSecurity
{
 /**
  * [encrypt aes加密]
  * @param [type]     $input [要加密的数据]
  * @param [type]     $key [加密key]
  * @return [type]       [加密后的数据]
  */
 public static function encrypt($input, $key)
 {
  $data = openssl_encrypt($input, 'AES-128-ECB', $key, OPENSSL_RAW_DATA);
  $data = base64_encode($data);
  return $data;
 }
 /**
  * [decrypt aes解密]
  * @param [type]     $sStr [要解密的数据]
  * @param [type]     $sKey [加密key]
  * @return [type]       [解密后的数据]
  */
 public static function decrypt($sStr, $sKey)
 {
  $decrypted = openssl_decrypt(base64_decode($sStr), 'AES-128-ECB', $sKey, OPENSSL_RAW_DATA);
  return $decrypted;
 }
}

可据需求,自行改编。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

PHP 相关文章推荐
PHP面向对象法则
Feb 23 PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
php图像处理函数imagecopyresampled用法详解
Dec 02 PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
PHP中数组转换为SimpleXML教程
Jan 27 PHP
php抽象方法和普通方法的区别点总结
Oct 13 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 PHP
PHP实现统计所有字符在字符串中出现次数的方法
Oct 17 #PHP
基于PHP-FPM进程池探秘
Oct 17 #PHP
PHP-X系列教程之内置函数的使用示例
Oct 16 #PHP
php封装单文件上传到数据库(路径)
Oct 15 #PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 #PHP
PHP多进程之pcntl_fork的实例详解
Oct 15 #PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 #PHP
You might like
php采集文章中的图片获取替换到本地(实现代码)
2013/07/08 PHP
php实现两个数组相加的方法
2015/02/17 PHP
php浏览历史记录的方法
2015/03/10 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
javascript下给元素添加事件的方法与代码
2007/08/13 Javascript
js里的prototype使用示例
2010/11/19 Javascript
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
jQuery实现长文字部分显示代码
2013/05/13 Javascript
jquery ajax方式直接提交整个表单核心代码
2013/08/15 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
如何通过JS实现转码与解码
2020/02/21 Javascript
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Django websocket原理及功能实现代码
2020/11/14 Python
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
俄罗斯第一家多品牌在线奢侈品精品店:Aizel.ru
2020/09/06 全球购物
综合办公室个人的自我评价
2013/12/22 职场文书
违章停车检讨书
2014/10/21 职场文书
详解Go语言运用广度优先搜索走迷宫
2021/06/23 Python
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS