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 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
PHP学习 运算符与运算符优先级
Jun 15 PHP
php获取当前网址url并替换参数或网址的方法
Jun 06 PHP
PHP下常用正则表达式整理
Oct 26 PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 PHP
PHP中echo,print_r与var_dump区别分析
Sep 29 PHP
PHP的拦截器实例分析
Nov 03 PHP
学习php设计模式 php实现观察者模式(Observer)
Dec 09 PHP
php提交post数组参数实例分析
Dec 17 PHP
ThinkPHP实现分页功能
Apr 28 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
Jun 22 PHP
PHP文件打开关闭及读写操作示例解析
Aug 06 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+Html+缓存
2006/12/20 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
PHP 正则表达式小结
2015/02/12 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
js模拟弹出效果代码修正版
2008/08/07 Javascript
JavaScript 三种创建对象的方法
2009/10/16 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
2020/07/31 Javascript
[04:52]DOTA2亚洲邀请赛附加赛 TOP10精彩集锦
2015/01/29 DOTA
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
python集成开发环境配置(pycharm)
2020/02/14 Python
python对文件的操作方法汇总
2020/02/28 Python
python3 使用traceback定位异常实例
2020/03/09 Python
超市促销实习自我鉴定
2013/09/23 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
2013年军训通讯稿
2014/02/05 职场文书
建房协议书
2014/04/11 职场文书
就业意向协议书
2015/01/29 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书