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并发访问实例代码
Sep 06 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
php eval函数用法总结
Oct 31 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
php排序算法实例分析
Oct 17 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
PHP进阶学习之命名空间基本用法分析
Jun 18 PHP
discuz论坛更换域名,详细文件修改步骤
Dec 09 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
实用函数10
2007/11/08 PHP
纯php生成随机密码
2015/10/30 PHP
php字符集转换
2017/01/23 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
封装属于自己的JS组件
2016/01/27 Javascript
JS高级运动实例分析
2016/12/20 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
浅谈ES6 模板字符串的具体使用方法
2017/11/07 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
js实现适配移动端的拖动效果
2020/01/13 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
react的hooks的用法详解
2020/10/12 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python 条件判断的缩写方法
2008/09/06 Python
python中bisect模块用法实例
2014/09/25 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
如何基于python实现脚本加密
2019/12/28 Python
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
家长学校实施方案
2014/03/15 职场文书
教师党员承诺书
2014/03/25 职场文书
法人任命书范本
2014/06/04 职场文书
交通违章检讨书
2014/09/21 职场文书
2014年乡镇工会工作总结
2014/12/02 职场文书
青年文明号申报材料
2014/12/23 职场文书
个人承诺书格式范文
2015/04/29 职场文书
关爱空巢老人感想
2015/08/11 职场文书
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL