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+Html+缓存
Nov 25 PHP
php中的观察者模式
Mar 24 PHP
php中批量删除Mysql中相同前缀的数据表的代码
Jul 01 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
php+mysqli使用面向对象方式查询数据库实例
Jan 29 PHP
php递归删除目录与文件的方法
Jan 30 PHP
php实现俄罗斯乘法实例
Mar 07 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
分享PHP-pcntl 实现多进程代码
Sep 30 PHP
详解Yii2 rules 的验证规则
Dec 02 PHP
PHP实现链表的定义与反转功能示例
Jun 09 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
Mar 26 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微信公众号开发之翻页查询
2018/10/20 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
PHP数组与字符串互相转换实例
2020/05/05 PHP
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
jQuery验证元素是否为空的两种常用方法
2015/03/17 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
2018/04/27 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
JavaScript创建防篡改对象的方法分析
2018/12/30 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
python编写微信公众号首图思路详解
2019/12/13 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
Python猜数字算法题详解
2020/03/01 Python
最新pycharm安装教程
2020/11/18 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
美国校服网上商店:French Toast
2019/10/08 全球购物
美国折扣香水网站:The Perfume Spot
2020/12/12 全球购物
夜大毕业自我鉴定
2013/10/11 职场文书
酒店保洁主管岗位职责
2013/11/28 职场文书
住房公积金接收函
2014/01/09 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
如何写观后感
2015/06/19 职场文书
初中体育教学随笔
2015/08/15 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python