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 相关文章推荐
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
php中serialize序列化与json性能测试的示例分析
Apr 27 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
php常量详细解析
Oct 27 PHP
PHP递归创建多级目录
Nov 05 PHP
PHP闭包函数详解
Feb 13 PHP
PHP处理CSV表格文件的常用操作方法总结
Jul 01 PHP
thinkphp整合微信支付代码分享
Nov 24 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 PHP
简单实用的PHP文本缓存类实例
Mar 22 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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脚本的10个技巧(2)
2006/10/09 PHP
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
PHP学习之正则表达式
2011/04/17 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
php下拉选项的批量操作的实现代码
2013/10/14 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
判断控件是否已加载完成的代码
2010/02/24 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
linux面试题参考答案(3)
2012/09/13 面试题
求职自荐书范文
2013/12/04 职场文书
一份报关员的职业规划范文
2014/01/08 职场文书
家长对学生的评语
2014/04/18 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python