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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
Apr 15 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
php中filter_input函数用法分析
Nov 15 PHP
php采用curl实现伪造IP来源的方法
Nov 21 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
PHP和MYSQL实现分页导航思路详解
Apr 11 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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 使用GD库为页面增加水印示例代码
2014/03/24 PHP
google 搜索框添加关键字实现代码
2010/04/24 Javascript
innerText 使用示例
2014/01/23 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
python内置数据类型之列表操作
2018/11/12 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
python日志logging模块使用方法分析
2019/05/23 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
Java里面如何创建一个内部类的实例
2015/01/19 面试题
八一建军节部队活动方案
2014/02/04 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
党员检讨书范文
2014/12/27 职场文书
Python Numpy库的超详细教程
2022/04/06 Python
java版 简单三子棋游戏
2022/05/04 Java/Android