php实现aes加密类分享


Posted in PHP onFebruary 16, 2014
<?php
class AESMcrypt {
 public $iv = null;
 public $key = null;
 public $bit = 128;
 private $cipher;
 public function __construct($bit, $key, $iv, $mode) {
  if(empty($bit) || empty($key) || empty($iv) || empty($mode))
  return NULL;
  $this->bit = $bit;
  $this->key = $key;
  $this->iv = $iv;
  $this->mode = $mode;
  switch($this->bit) {
   case 192:$this->cipher = MCRYPT_RIJNDAEL_192; break;
   case 256:$this->cipher = MCRYPT_RIJNDAEL_256; break;
   default: $this->cipher = MCRYPT_RIJNDAEL_128;
  }
  switch($this->mode) {
   case 'ecb':$this->mode = MCRYPT_MODE_ECB; break;
   case 'cfb':$this->mode = MCRYPT_MODE_CFB; break;
   case 'ofb':$this->mode = MCRYPT_MODE_OFB; break;
   case 'nofb':$this->mode = MCRYPT_MODE_NOFB; break;
   default: $this->mode = MCRYPT_MODE_CBC;
  }
 }
 public function encrypt($data) {
  $data = base64_encode(mcrypt_encrypt( $this->cipher, $this->key, $data, $this->mode, $this->iv));
  return $data;
 }
 public function decrypt($data) {
  $data = mcrypt_decrypt( $this->cipher, $this->key, base64_decode($data), $this->mode, $this->iv);
  $data = rtrim(rtrim($data), "\x00..\x1F");
  return $data;
 }
}
//使用方法
$aes = new AESMcrypt($bit = 128, $key = 'abcdef1234567890', $iv = '0987654321fedcba', $mode = 'cbc');
$c = $aes->encrypt('haowei.me');
var_dump($aes->decrypt($c));
PHP 相关文章推荐
Banner程序
Oct 09 PHP
用PHP进行MySQL删除记录操作代码
Jun 07 PHP
来自phpguru得Php Cache类源码
Apr 15 PHP
php session_start()出错原因分析及解决方法
Oct 28 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
Nov 13 PHP
php中stream(流)的用法
Mar 25 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
Jul 20 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP创建XML接口示例
Jul 04 PHP
实现获取http内容的php函数分享
Feb 16 #PHP
php输出1000以内质数(素数)示例
Feb 16 #PHP
回帖脱衣服的图片实现代码
Feb 15 #PHP
php随机显示图片的简单示例
Feb 15 #PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 #PHP
php实现加减法验证码代码
Feb 14 #PHP
php实现mysql数据库操作类分享
Feb 14 #PHP
You might like
PHP 编程的 5个良好习惯
2009/02/20 PHP
CI框架验证码CAPTCHA辅助函数用法实例
2014/11/05 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
PHP时间和日期函数详解
2015/05/08 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
浅析PHP echo 和 print 语句
2020/06/30 PHP
Extjs入门之动态加载树代码
2010/04/09 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
基于原生JS实现图片裁剪
2016/08/01 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
Layui数据表格 前后端json数据接收的方法
2019/09/19 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
Python使用urllib模块的urlopen超时问题解决方法
2014/11/08 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
分享vim python缩进等一些配置
2018/07/02 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
销售顾问工作计划书
2014/08/15 职场文书
2019年工作总结范文
2019/05/21 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python