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 相关文章推荐
PHP Header用于页面跳转要注意的几个问题总结
Oct 03 PHP
PHP+ACCESS 文章管理程序代码
Jun 21 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
Jan 11 PHP
PHP中source #N问题的解决方法
Jan 27 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 PHP
php动态添加url查询参数的方法
Apr 14 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 PHP
thinkPHP通用控制器实现方法示例
Nov 23 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 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 引用是个坏习惯
2010/03/12 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
php 问卷调查结果统计
2015/10/08 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
javascript实现继承的简单实例
2015/07/26 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
小程序实现授权登陆的解决方案
2018/12/02 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
vue select 获取value和lable操作
2020/08/28 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
Python编程中装饰器的使用示例解析
2016/06/20 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
把pandas转换int型为str型的方法
2019/01/29 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
numpy.array 操作使用简单总结
2019/11/08 Python
Pycharm debug调试时带参数过程解析
2020/02/03 Python
python游戏开发的五个案例分享
2020/03/09 Python
小学生班会演讲稿
2014/01/09 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
ktv筹备计划书
2014/05/03 职场文书
党员作风建设自查报告
2014/10/23 职场文书
忠犬八公的故事观后感
2015/06/05 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
婚宴领导致辞
2015/07/28 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
mysql字段为NULL索引是否会失效实例详解
2022/05/30 MySQL
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技