PHP使用openssl扩展实现加解密方法示例


Posted in PHP onFebruary 20, 2020

从PHP7版本开始很多依赖mcrypt扩展的方法都不支持了,PHP7.2.0及以上版本已经完全不支持mcrypt扩展的任何方法了,所以PHP7及以上版本都应该使用openssl扩展来实现加解密。

以DES-CBC加密方式为例:

<?php

class DesUtil
{
  /**
   * Des 加密
   *
   * @param $str
   * @param $secretKey
   * @param string $iv
   * @return string
   */
  public static function encrypt($str, $secretKey, $iv = '')
  {
    return base64_encode(openssl_encrypt($str, 'des-cbc', $secretKey, OPENSSL_RAW_DATA, $iv));
  }

  /**
   * Des 解密
   *
   * @param $str
   * @param $secretKey
   * @param string $iv
   * @return string
   */
  public static function decrypt($str, $secretKey, $iv = '')
  {
    return openssl_decrypt(base64_decode($str), 'des-cbc', $secretKey, OPENSSL_RAW_DATA, $iv);
  }
}

到此这篇关于PHP使用openssl扩展实现加解密方法示例的文章就介绍到这了,更多相关PHP openssl扩展实现加解密内容请搜素三水点靠木以前的文章或下面相关文章,希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
PHP新手上路(三)
Oct 09 PHP
php之对抗Web扫描器的脚本技巧
Oct 01 PHP
php session安全问题分析
Jun 24 PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
php日历制作代码分享
Jan 20 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php使用正则过滤js脚本代码实例
May 10 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
PHP多维数组元素操作类的方法
Nov 14 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 #PHP
解决windows上php xdebug 无法调试的问题
Feb 19 #PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 #PHP
laravel框架select2多选插件初始化默认选中项操作示例
Feb 18 #PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 #PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 #PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
Feb 15 #PHP
You might like
PHP通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
vmware linux系统安装最新的php7图解
2019/04/14 PHP
js下获取div中的数据的原理分析
2010/04/07 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
Vue.js分页组件实现:diVuePagination的使用详解
2018/01/10 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
从vue源码解析Vue.set()和this.$set()
2018/08/30 Javascript
vue使用v-for实现hover点击效果
2018/09/29 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
python两种遍历字典(dict)的方法比较
2014/05/29 Python
Python中几种导入模块的方式总结
2017/04/27 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
如何获取Python简单for循环索引
2019/11/21 Python
pytorch实现CNN卷积神经网络
2020/02/19 Python
python利用百度云接口实现车牌识别的示例
2020/02/21 Python
jupyter notebook中美观显示矩阵实例
2020/04/17 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
学校安全工作制度
2014/01/19 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
工程催款通知书
2015/04/17 职场文书
限期整改通知书
2015/04/22 职场文书
Python机器学习之底层实现KNN
2021/06/20 Python
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript