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中MD5函数使用实例代码
Jun 07 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
Apr 12 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
php递归实现无限分类生成下拉列表的函数
Aug 08 PHP
PHP IE中下载附件问题解决方法
Jan 07 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
php实现支付宝当面付(扫码支付)功能
May 30 PHP
PHP getDocNamespaces()函数讲解
Feb 03 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连接MongoDB示例代码
2012/09/06 PHP
学习php分页代码实例
2013/10/24 PHP
PHP下的Oracle客户端扩展(OCI8)安装教程
2014/09/10 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
Nodejs学习item【入门手上】
2016/05/05 NodeJs
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
python爬虫用mongodb的理由
2020/07/28 Python
Python接收手机短信的代码整理
2020/08/02 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
家长学校实施方案
2014/03/15 职场文书
党员公开承诺书内容
2014/05/20 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书