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中动态HTML的输出技术
Oct 09 PHP
PHP新手上路(五)
Oct 09 PHP
回答PHPCHINA上的几个问题:URL映射
Feb 14 PHP
PHP+JS+rsa数据加密传输实现代码
Mar 23 PHP
php设计模式 Observer(观察者模式)
Jun 26 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 PHP
PHP设计模式之装饰器模式定义与用法详解
Apr 02 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 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上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
PHP实现执行外部程序的方法详解
2017/08/17 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
jquery multiSelect 多选下拉框
2010/07/09 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
JS实现的省份级联实例代码
2013/06/24 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
vue使用keep-alive保持滚动条位置的实现方法
2019/04/09 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
优秀学生干部个人的自我评价
2013/10/04 职场文书
工程造价与管理专业应届生求职信
2013/11/23 职场文书
青年文明号服务承诺
2014/03/31 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
物业工程部岗位职责
2015/02/11 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
方法汇总:Python 安装第三方库常用
2022/04/26 Python
Win10此设备不支持接收Miracast无法投影的解决方法
2022/07/07 数码科技