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 相关文章推荐
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
调试PHP程序的多种方法介绍
Nov 06 PHP
PHP中的命名空间详细介绍
Jul 02 PHP
Cygwin中安装PHP方法步骤
Jul 04 PHP
如何通过Linux命令行使用和运行PHP脚本
Jul 29 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
js判断checkbox是否选中个数的方法(超简单)
2016/08/19 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
vue一步步实现alert功能
2017/07/05 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
Node快速切换版本、版本回退(降级)、版本更新(升级)
2021/01/07 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
Python中的__new__与__init__魔术方法理解笔记
2014/11/08 Python
更改Ubuntu默认python版本的两种方法python-> Anaconda
2016/12/18 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
Python中property函数用法实例分析
2018/06/04 Python
详解通过API管理或定制开发ECS实例
2018/09/30 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
微笑面对生活演讲稿
2014/05/13 职场文书
大学第二课堂活动总结
2014/07/08 职场文书
月考总结与反思
2015/10/22 职场文书
创业计划书之校园超市
2019/09/12 职场文书
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android