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的面试题集
Nov 19 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
php xml留言板 xml存储数据的简单例子
Aug 24 PHP
利用php下载xls文件(自己动手写的)
Apr 18 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
Jan 07 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
Mar 05 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
Mar 25 PHP
PHP 实现文件压缩解压操作的方法
Jun 14 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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+SqlServer实现分页显示
2006/10/09 PHP
yii上传文件或图片实例
2014/04/01 PHP
PHP概率计算函数汇总
2015/09/13 PHP
php使用file函数、fseek函数读取大文件效率对比分析
2016/11/04 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
window.location.href = window.location.href 跳转无反应 a超链接onclick事件写法
2013/08/21 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
JavaScript实现矩形块大小任意缩放
2020/08/25 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
python开发利器之ulipad的使用实践
2017/03/16 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
Python的pygame安装教程详解
2020/02/10 Python
python_mask_array的用法
2020/02/18 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
护士自我评价
2014/02/01 职场文书
青年教师培训方案
2014/02/06 职场文书
庆元旦活动总结
2014/07/09 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书
2016年中学法制宣传日活动总结
2016/04/01 职场文书
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS