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 相关文章推荐
人尽可用的Windows技巧小贴士之下篇
Mar 22 PHP
php 文件夹删除、php清除缓存程序
Aug 25 PHP
PHP代码保护--Zend Guard的使用详解
Jun 03 PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
PHP实现批量生成App各种尺寸Logo
Mar 19 PHP
php防止网站被攻击的应急代码
Oct 21 PHP
修复ShopNC使用QQ 互联时提示100010 错误
Nov 08 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
PHP类相关知识点实例总结
Sep 28 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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的栏目导航程序
2006/10/09 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
php中钩子(hook)的原理与简单应用demo示例
2019/09/03 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
在Vue组件化中利用axios处理ajax请求的使用方法
2017/08/25 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
jQuery轮播图实例详解
2018/08/15 jQuery
浅谈webpack性能榨汁机(打包速度优化)
2019/01/09 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
使用python批量转换文件编码为UTF-8的实现
2020/04/03 Python
pandas 数据类型转换的实现
2020/12/29 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
法律专业自我鉴定
2013/10/03 职场文书
善意的谎言事例
2014/02/15 职场文书
英语教师岗位职责
2014/03/16 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
乱世佳人观后感
2015/06/08 职场文书
暂住证明怎么写
2015/06/19 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
Python中request的基本使用解决乱码问题
2022/04/12 Python
python实现简单的三子棋游戏
2022/04/28 Python