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 29 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
Jul 02 PHP
ThinkPHP开发框架函数详解:C方法
Aug 14 PHP
功能强大的PHP POST提交数据类
Jul 15 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
php实现websocket实时消息推送
Mar 30 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 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
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
js验证表单大全
2006/11/25 Javascript
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析
2010/03/12 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
js跨域访问示例(客户端/服务端)
2014/05/19 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
javascript将url解析为json格式的两种方法
2017/08/18 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
linux下安装easy_install的方法
2013/02/10 Python
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Python中常用的高阶函数实例详解
2020/02/21 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
django教程如何自学
2020/07/31 Python
后勤副校长自我鉴定
2013/10/13 职场文书
竞聘上岗演讲稿范文
2014/01/10 职场文书
升国旗仪式主持词
2014/03/19 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
廉洁教育学习材料
2014/05/19 职场文书
师德模范事迹材料
2014/06/03 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
公司总经理岗位职责
2015/04/01 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
PHP遍历数组的6种方式总结
2021/11/17 PHP
一条慢SQL语句引发的改造之路
2022/03/16 MySQL