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 iconv函数的使用详解
Jun 09 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
php上传文件问题汇总
Jan 30 PHP
CodeIgniter中使用Smarty3基本配置
Jun 29 PHP
php实现的xml操作类
Jan 15 PHP
php文件上传的两种实现方法
Apr 04 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
May 13 PHP
php下载文件,添加响应头的简单实例
Sep 22 PHP
PHP序列化操作方法分析
Sep 28 PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 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下mysql数据库操作类(改自discuz)
2010/07/03 PHP
php中将地址生成迅雷快车旋风链接的代码[测试通过]
2011/04/20 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
2016/05/09 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
2016/12/27 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
详解vue-router基本使用
2017/04/18 Javascript
vue axios基于常见业务场景的二次封装的实现
2018/09/21 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
基于python操作ES实例详解
2019/11/16 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
草莓网英国官网:Strawberrynet UK
2017/02/12 全球购物
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
Steiff台湾官网:德国金耳釦泰迪熊
2019/12/26 全球购物
抽象类和接口的区别
2012/09/19 面试题
2015中秋祝酒词
2015/08/12 职场文书
反邪教教育心得体会
2016/01/15 职场文书
JavaScript 原型与原型链详情
2021/11/02 Javascript
Python 键盘事件详解
2021/11/11 Python