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在字符串中查找指定字符串并删除的代码
Oct 02 PHP
php教程之phpize使用方法
Feb 12 PHP
php页面函数设置超时限制的方法
Dec 01 PHP
Windows2003下php5.4安装配置教程(Apache2.4)
Jun 30 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 PHP
Laravel统计一段时间间隔的数据方法
Oct 09 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 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
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
js图片延迟加载的实现方法及思路
2013/07/22 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
流量统计器如何鉴别C#:WebBrowser中伪造referer
2015/01/07 Javascript
js去除浏览器默认底图的方法
2015/06/08 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
js转换对象为xml
2017/02/17 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
k8s node节点重新加入master集群的实现
2021/02/22 Javascript
打印出python 当前全局变量和入口参数的所有属性
2009/07/01 Python
Python3.x和Python2.x的区别介绍
2013/02/12 Python
详解python基础之while循环及if判断
2017/08/24 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
python集合比较(交集,并集,差集)方法详解
2018/09/13 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
python super的使用方法及实例详解
2019/09/25 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
2020/04/08 Python
keras中的backend.clip用法
2020/05/22 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
给孩子的新年寄语
2014/04/08 职场文书
请假条的格式
2014/04/11 职场文书
党员公开承诺书内容
2014/05/20 职场文书
品牌推广策划方案
2014/05/28 职场文书
亚运会口号
2014/06/20 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
水电工程师岗位职责
2015/02/13 职场文书
Python使用DFA算法过滤内容敏感词
2022/04/22 Python