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代码
Dec 06 PHP
PHP DataGrid 实现代码
Aug 12 PHP
array_multisort实现PHP多维数组排序示例讲解
Jan 04 PHP
PHP重定向的3种方式
Mar 07 PHP
鸡肋的PHP单例模式应用详解
Jun 03 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
PHP中获取时间的下一周下个月的方法
Mar 18 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
Feb 16 PHP
php中pcntl_fork详解
Apr 01 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
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
js求数组中全部数字可拼接出的最大整数示例代码
2017/08/25 Javascript
Angularjs cookie 操作实例详解
2017/09/27 Javascript
Node.js实现发送邮件功能
2017/11/06 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
vue 实现用户登录方式的切换功能
2020/04/14 Javascript
js验证账户名是否重复
2020/05/26 Javascript
python函数返回多个值的示例方法
2013/12/04 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
使用Python的turtle模块画国旗
2019/09/24 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
Java程序员常见面试题
2015/07/16 面试题
高校教师自荐信范文
2014/03/13 职场文书
保研导师推荐信
2015/03/25 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
nginx的zabbix 5.0安装部署的方法步骤
2021/07/16 Servers