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与SQL注入攻击[一]
Apr 17 PHP
php 连接mssql数据库 初学php笔记
Mar 01 PHP
解析func_num_args与func_get_args函数的使用
Jun 24 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 PHP
简述php环境搭建与配置
Dec 05 PHP
thinkPHP5.0框架应用请求生命周期分析
Mar 25 PHP
PHP获取当前系统时间的方法小结
Oct 03 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 PHP
php测试kafka项目示例
Feb 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+Mysql+jQuery实现发布微博程序 jQuery篇
2011/10/08 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
2015/12/10 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
JavaScript中Object值合并方法详解
2017/12/22 Javascript
使用jquery Ajax实现上传附件功能
2018/10/23 jQuery
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Tornado服务器中绑定域名、虚拟主机的方法
2014/08/22 Python
Python协程的用法和例子详解
2017/09/09 Python
Python3中列表list合并的四种方法
2019/04/19 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
python 中如何获取列表的索引
2019/07/02 Python
python搜索包的路径的实现方法
2019/07/19 Python
Python安装selenium包详细过程
2019/07/23 Python
python实现单链表的方法示例
2019/09/03 Python
Python基于内置库pytesseract实现图片验证码识别功能
2020/02/24 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
GWebs公司笔试题
2012/05/04 面试题
实习生单位鉴定意见
2013/12/04 职场文书
《新型玻璃》教学反思
2014/04/13 职场文书
优秀求职信
2014/05/29 职场文书
公安局副政委班子个人对照检查材料
2014/10/04 职场文书
瘦西湖导游词
2015/02/03 职场文书
2015年大学生实习评语
2015/03/25 职场文书
党小组意见范文
2015/06/08 职场文书
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang