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 相关文章推荐
在Windows中安装Apache2和PHP4的权威指南
Oct 09 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
php 获取远程网页内容的函数
Sep 08 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
smarty半小时快速上手入门教程
Oct 27 PHP
php+mysql实现简单的增删改查功能
Jul 13 PHP
PHP数组函数知识汇总
May 12 PHP
PHP接口并发测试的方法(推荐)
Dec 15 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 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
农民和部队如何穿矿
2020/03/04 星际争霸
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
javascript new 需不需要继续使用
2009/07/02 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
详解webpack4升级指南以及从webpack3.x迁移
2018/06/12 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
解决layer.prompt无效的问题
2019/09/24 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
python生成器generator用法实例分析
2015/06/04 Python
实例解析Python设计模式编程之桥接模式的运用
2016/03/02 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
python模块之time模块(实例讲解)
2017/09/13 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
3种python调用其他脚本的方法
2020/01/06 Python
Python bytes string相互转换过程解析
2020/03/05 Python
英国现代家具和照明购物网站:Heal’s
2019/10/30 全球购物
程序员经常用到的UNIX命令
2015/04/13 面试题
实习生单位鉴定意见
2013/12/04 职场文书
车间组长岗位职责
2013/12/20 职场文书
学习党课思想汇报
2013/12/29 职场文书
幼儿园家长会欢迎词
2014/01/09 职场文书
化妆品促销方案
2014/02/24 职场文书
中学校庆方案
2014/03/17 职场文书
同事打架检讨书
2015/05/06 职场文书
患者身份识别制度
2015/08/06 职场文书
Mysql 如何实现多张无关联表查询数据并分页
2021/06/05 MySQL
Java基础之线程锁相关知识总结
2021/06/30 Java/Android
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript