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一些有意思的小区别
Dec 06 PHP
对squid中refresh_pattern的一些理解和建议
Apr 17 PHP
php中使用addslashes函数报错问题的解决方法
Feb 06 PHP
推荐一本PHP程序猿都应该拜读的书
Dec 31 PHP
php接口数据加密、解密、验证签名
Mar 12 PHP
PHP自毁程序(慎用)
Jul 09 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
详解thinkphp中的volist标签
Jan 15 PHP
PHP abstract 抽象类定义与用法示例
May 29 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
Jul 06 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在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
php批量删除操作代码分享
2017/02/26 PHP
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
2015/02/27 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
2016/06/16 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
基于Vue2实现的仿手机QQ单页面应用功能(接入聊天机器人 )
2017/03/30 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
python执行使用shell命令方法分享
2017/11/08 Python
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
Python根据字典的值查询出对应的键的方法
2020/09/30 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
酒店前台接待岗位职责
2013/12/03 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
广告学专业毕业生自荐信
2014/05/28 职场文书
个人债务授权委托书
2014/10/17 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
付款承诺函范文
2015/01/21 职场文书
2015年教研工作总结
2015/05/23 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python