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 相关文章推荐
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
一周学会PHP(视频)Http下载
Dec 12 PHP
Php注入点构造代码
Jun 14 PHP
php+mysql写的简单留言本实例代码
Jul 25 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
laravel 解决强制跳转 https的问题
Oct 22 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 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
实用函数10
2007/11/08 PHP
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
Python面向对象之类的内置attr属性示例
2018/12/14 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
英国一家专门出售品牌鞋子的网站:Allsole
2016/08/07 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
委托证明书
2014/09/17 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
民用住房租房协议书
2014/10/29 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers