php实现aes加密类分享_php实例

复制代码 代码如下:

<?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));

时间: 2024-09-20 10:41:56

php实现aes加密类分享_php实例的相关文章

php实现aes加密类分享

 这篇文章主要介绍了php实现的aes加密类,代码中有使用方法,需要的朋友可以参考下  代码如下: <?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) || e

一个经典的PHP验证码类分享_php实例

我们通过PHP的GD库图像处理内容,设计一个验证码类Vcode.将该类声明在文件vcode.class.php中,并通过面向对象的特性将一些实现的细节封装在该类中.只要在创建对象时,为构造方法提供三个参数,包括创建验证码图片的宽度.高度及验证码字母个数,就可以成功创建一个验证码类的对象.该类的声明代码如下所示: <?php class Vcode { private $width; //宽 private $height; //高 private $num; //数量 private $code

个人写的PHP验证码生成类分享_php实例

此验证码类直接拿去就可以用,也可以参考! 其中类成员codestr是生成的验证码字符串: <?php /** * 验证码 */ class Code{ // 1. 定义各个成员 有宽.高.画布.字数.类型.画类型 private $width; //宽度 private $height; //高度 private $num; //验证码字数 private $imgType; //生成图片类型 private $Type; //字串类型 1,2,3 三个选项 1 纯数字 2 纯小写字母 3 大小

一个比较不错的PHP日历类分享_php实例

说到对时期和时间的处理,就一定要介绍一下日历程序的编写.但一提起编写日历,大多数人都会认为日历的作用只是为了在页上显示当前的日期,其实日历在我们的开发中有更重要的作用.例如我们开发一个"记事本"就需要通过日历设定日期,还有一些系统中需要按日期去排任务,也需要日历,等等.本例涉及的日期和时间函数并不是很多,都是前面介绍的内容,主要是通过一个日历类的编写,巩固一下前面介绍过的面向对象的语法知识,以及时间函数应用,最主要的是可以提升初学者的思维逻辑和程序设计能力.将日历类Calendar声明

一个经典的PHP文件上传类分享_php实例

文件上传是项目开发中比较常见的功能,但文件上传的过程比较繁琐,只要是有文件上传的地方就需要编写这些复杂的代码.为了能在每次开发中降低功能的编写难度,也为了能节省开发时间,通常我们都会将这些反复使用的一段代码封装到一个类中.帮助开发者在以后的开发中,通过编写几条简单代码就可以实现复杂的文件上传功能.对于基础薄弱的读者,只要会使用本类即可,而对一些喜欢挑战的朋友,可以尝试去读懂它,并能开发一个属于自己的文件上传类. 一.需求分析 要球自定义文件上传类,即在使用非常简便的前提下,又可以完成以下几项功能

PHP 验证登陆类分享_php实例

简单的登录类,没有把登录和数据库查询分开 复制代码 代码如下: /*  *   例子  *  *  $Auth=new Auth();  *  $Auth->login("123@123.com","123");  *  $Auth->logout();  *  echo $r->init();      * **/ 验证登陆类 复制代码 代码如下: <?php /*  *  * @ID:      验证登陆类  *  * @class:  

php生成验证码,缩略图及水印图的类分享_php实例

封装了一个类,可生成验证码,缩略图,及水印图,分享给大家 <?php class image{ session_start(); //验证码类 static public function verify($code,$width=75,$height=25,$n=4){ header("content-type:image/png"); // 创建画布 $img=imagecreatetruecolor($width,$height); // 设置背景色 $bgcolor=ima

一个非常完美的读写ini格式的PHP配置类分享_php实例

基本满足所有配置相关的需求. /** * 解析.ini格式的配置文件为一个树形结构的对象 * 配置文件不同section通过冒号继承 * 默认根据hostname确定使用的section,如果不能确定就优先使用production * 检测环境的时候总是优先检测production,其余section按定义顺序检测 * * @author ares@phpdr.net * */ class Config { /** * 解析后的配置文件 * * @var stdClass */ private

php实现的任意进制互转类分享_php实例

之前不知道php自带有base_convert可以实现任意进制之间的转换,自己写了一个.... <?php /** * 进制转换类 * @author sgf@funcity * @version 2011-02-15 */ Class Hex{ private static $element = array( '0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F','G','H','I','J', 'K','L','M'