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令牌 Token改进版
Jul 18 PHP
细谈php中SQL注入攻击与XSS攻击
Jun 10 PHP
php 启动报错如何解决
Jan 17 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
Yii CGridView用法实例详解
Jul 12 PHP
thinkPHP5.0框架配置格式、加载解析与读取方法
Mar 17 PHP
php smtp实现发送邮件功能
Jun 22 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
PHP 实现页面静态化的几种方法
Jul 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 连接mssql数据库 初学php笔记
2010/03/01 PHP
Views rows style模板重写代码
2011/05/16 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
JavaScript中链式调用之研习
2011/04/07 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
wepy--用vantUI 实现上弹列表并选择相应的值操作
2020/11/03 Javascript
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
python简单猜数游戏实例
2015/07/09 Python
python实现求最长回文子串长度
2018/01/22 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
python中的逆序遍历实例
2019/12/25 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
Python爬虫与反爬虫大战
2020/07/30 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
行政助理的职责
2013/11/14 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
小学英语复习计划
2015/01/19 职场文书
小学体育组工作总结2015
2015/07/21 职场文书
队列队形口号
2015/12/25 职场文书