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概述.
Oct 09 PHP
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
php中用加号与用array_merge合并数组的区别深入分析
Jun 03 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
php利用事务处理转账问题
Apr 22 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
Sep 30 PHP
laravel 框架结合关联查询 when()用法分析
Nov 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中使用gettext来支持多语言的方法
2011/05/02 PHP
php中strtotime函数用法详解
2014/11/15 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
JS案例分享之金额小写转大写
2014/05/15 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
如何用python处理excel表格
2020/06/09 Python
详解python logging日志传输
2020/07/01 Python
ffmpeg+Python实现B站MP4格式音频与视频的合并示例代码
2020/10/21 Python
python re的findall和finditer的区别详解
2020/11/15 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
护士辞职信范文
2014/01/19 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
电工生产实习心得体会
2016/01/22 职场文书