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中变量及部分适用方法
Mar 27 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
php入门学习知识点二 PHP简单的分页过程与原理
Jul 14 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
destoon各类调用汇总
Jun 20 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
php连接mysql数据库最简单的实现方法
Sep 24 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
TP5框架安全机制实例分析
Apr 05 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
通过html表格发电子邮件
2006/10/09 PHP
ajax+php实现无刷新验证手机号的实例
2017/12/22 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
老生常谈jquery id选择器和class选择器的区别
2017/02/12 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
python通过实例讲解反射机制
2019/10/17 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
《狮子和兔子》教学反思
2014/03/02 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
婚内房产协议书范本
2014/10/02 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
2015年护士节慰问信
2015/03/23 职场文书
2016七一建党节慰问信
2015/11/30 职场文书
教师读书活动心得体会
2016/01/14 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
导游词之镜泊湖
2019/12/09 职场文书