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读取msn上的用户信息类
Dec 05 PHP
获取远程文件大小的php函数
Jan 11 PHP
php上传文件的增强函数
Jul 21 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 PHP
php获得网站访问统计信息类Compete API用法实例
Apr 02 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 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 网页过期时间的控制代码
2009/06/29 PHP
php 缩略图实现函数代码
2011/06/23 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
Javascript高级技巧分享
2014/02/25 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
AngularJS基础 ng-mouseover 指令简单示例
2016/08/02 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
Bootstrap Table从零开始
2017/06/30 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
2018/08/28 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
python函数返回多个值的示例方法
2013/12/04 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
利用Python破解验证码实例详解
2016/12/08 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
python将字符串转换成json的方法小结
2019/07/09 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
拉拉队口号
2014/06/16 职场文书
公司活动总结范文
2014/07/01 职场文书
中学生思想品德评语
2014/12/31 职场文书
2015年党建工作总结
2015/03/30 职场文书
面试通知邮件
2015/04/20 职场文书
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android