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_Flame(Version:Progress)的原代码
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
php比较相似字符串的方法
Jun 05 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
Dec 15 PHP
ThinkPHP实现生成和校验验证码功能
Apr 28 PHP
PHP中递归的实现实例详解
Nov 14 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删除HTMl标签的三种解决方法
2013/06/30 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
2015/10/29 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
Python模块搜索路径代码详解
2018/01/29 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
Python list与NumPy array 区分详解
2019/11/06 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
基于python的列表list和集合set操作
2019/11/24 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
cf收人广告词
2014/03/14 职场文书
合作协议书范文
2014/08/20 职场文书
交通事故起诉书
2015/05/19 职场文书
五年级作文之成长
2019/09/16 职场文书