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
用PHP+MySql编写聊天室
Oct 09 PHP
在字符串指定位置插入一段字符串的php代码
Feb 16 PHP
PHP foreach循环使用详解与实例代码
May 08 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
Sep 10 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
php获取新浪微博数据API实例
Nov 12 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
微信 开发生成带参数的二维码的实例
Nov 23 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/08/09 PHP
php支付宝接口用法分析
2015/01/04 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
基于jquery的blockui插件显示弹出层
2011/04/14 Javascript
JavaScript代码复用模式实例分析
2012/12/02 Javascript
基于javascipt-dom编程 table对象的使用
2013/04/22 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
webpack实践之DLLPlugin 和 DLLReferencePlugin的使用教程
2019/06/10 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
swiper实现导航滚动效果
2020/12/13 Javascript
Python是编译运行的验证方法
2015/01/30 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
python清除字符串前后空格函数的方法
2018/10/21 Python
Python 多线程,threading模块,创建子线程的两种方式示例
2019/09/29 Python
python实现随机加减法生成器
2020/02/24 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
工厂保洁员岗位职责
2013/12/04 职场文书
日语专业毕业生自荐书
2014/06/18 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
2015年评职称工作总结范文
2015/04/20 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
2015大学生暑假调查报告
2015/07/13 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python