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安全编程之加密功能
Oct 09 PHP
PHP编码规范-php coding standard
Mar 16 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
thinkphp的c方法使用示例
Feb 24 PHP
php中session使用示例
Mar 29 PHP
PHP版微信公众平台红包API
Apr 02 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
thinkphp5+layui实现的分页样式示例
Oct 08 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 PHP
Laravel实现ORM带条件搜索分页
Oct 24 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中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
php操作xml
2013/10/27 PHP
php轻松实现文件上传功能
2016/03/03 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
js循环改变div颜色具体方法
2013/06/25 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
酒店总经理欢迎词
2014/01/08 职场文书
保研导师推荐信
2015/03/25 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
单位提档介绍信
2015/10/22 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
Python可视化神器pyecharts绘制水球图
2022/07/07 Python