亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php中AES加密解密的例子小結

2024-05-04 23:21:26
字體:
來源:轉載
供稿:網友

aesDemo.php:

例子,

復制代碼 代碼如下:


<?php
require_once('./AES.php');
//$aes = new AES();
$aes = new AES(true);// 把加密后的字符串按十六進制進行存儲
//$aes = new AES(true,true);// 帶有調試信息且加密字符串按十六進制存儲
$key = "this is a 32 byte key";// 密鑰
$keys = $aes->makeKey($key);
$encode = "123456";// 被加密的字符串
$ct = $aes->encryptString($encode, $keys);
echo "encode = ".$ct."<br>";
$cpt = $aes->decryptString($ct, $keys);
echo "decode = ".$cpt;
?>

例子、AES加密類

復制代碼 代碼如下:


<?php
//php aes加密類
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), "..");
return $data;
}

}
//使用方法
$aes = new AESMcrypt($bit = 128, $key = 'abcdef1234567890', $iv = '0987654321fedcba', $mode = 'cbc');
$c = $aes->encrypt('haowei.me');
var_dump($aes->decrypt($c));

例子、附一個可加密可解密類

復制代碼 代碼如下:


<?PHP
/**
 * AES加密、解密類
 * @author hushangming
 *
 * 用法:
 * <pre>
 * // 實例化類
 * // 參數$_bit:格式,支持256、192、128,默認為128字節的
 * // 參數$_type:加密/解密方式,支持cfb、cbc、nofb、ofb、stream、ecb,默認為ecb
 * // 參數$_key:密鑰,默認為abcdefghijuklmno
 * $tcaes = new TCAES();
 * $string = 'laohu';
 * // 加密
 * $encodeString = $tcaes->encode($string);
 * // 解密
 * $decodeString = $tcaes->decode($encodeString);
 * </pre>
 */
class TCAES{
 private $_bit = MCRYPT_RIJNDAEL_256;
 private $_type = MCRYPT_MODE_CBC;
 //private $_key = 'abcdefghijuklmno0123456789012345';
 private $_key = 'abcdefghijuklmno'; // 密鑰
 private $_use_base64 = true;
 private $_iv_size = null;
 private $_iv = null;

 /**
  * @param string $_key 密鑰
  * @param int $_bit 默認使用128字節
  * @param string $_type 加密解密方式
  * @param boolean $_use_base64 默認使用base64二次加密
  */
 public function __construct($_key = '', $_bit = 128, $_type = 'ecb', $_use_base64 = true){
  // 加密字節
  if(192 === $_bit){
   $this->_bit = MCRYPT_RIJNDAEL_192;
  }elseif(128 === $_bit){
   $this->_bit = MCRYPT_RIJNDAEL_128;
  }else{
   $this->_bit = MCRYPT_RIJNDAEL_256;
  }
  // 加密方法
  if('cfb' === $_type){
   $this->_type = MCRYPT_MODE_CFB;
  }elseif('cbc' === $_type){
   $this->_type = MCRYPT_MODE_CBC;
  }elseif('nofb' === $_type){
   $this->_type = MCRYPT_MODE_NOFB;
  }elseif('ofb' === $_type){
   $this->_type = MCRYPT_MODE_OFB;
  }elseif('stream' === $_type){
   $this->_type = MCRYPT_MODE_STREAM;
  }else{
   $this->_type = MCRYPT_MODE_ECB;
  }
  // 密鑰
  if(!empty($_key)){
   $this->_key = $_key;
  }
  // 是否使用base64
  $this->_use_base64 = $_use_base64;

  $this->_iv_size = mcrypt_get_iv_size($this->_bit, $this->_type);
  $this->_iv = mcrypt_create_iv($this->_iv_size, MCRYPT_RAND);
 }

 /**
  * 加密
  * @param string $string 待加密字符串
  * @return string
  */
 public function encode($string){
  if(MCRYPT_MODE_ECB === $this->_type){
   $encodeString = mcrypt_encrypt($this->_bit, $this->_key, $string, $this->_type);
  }else{
   $encodeString = mcrypt_encrypt($this->_bit, $this->_key, $string, $this->_type, $this->_iv);
  }
  if($this->_use_base64)
   $encodeString = base64_encode($encodeString);
  return $encodeString;
 }

 /**
  * 解密
  * @param string $string 待解密字符串
  * @return string
  */
 public function decode($string){
  if($this->_use_base64)
   $string = base64_decode($string);

  $string = $this->toHexString($string);
  if(MCRYPT_MODE_ECB === $this->_type){
   $decodeString = mcrypt_decrypt($this->_bit, $this->_key, $string, $this->_type);
  }else{
   $decodeString = mcrypt_decrypt($this->_bit, $this->_key, $string, $this->_type, $this->_iv);
  }
  return $decodeString;
 }

 /**
  * 將$string轉換成十六進制
  * @param string $string
  * @return stream
  */
 private function toHexString ($string){
  $buf = "";
  for ($i = 0; $i < strlen($string); $i++){
   $val = dechex(ord($string{$i}));
   if(strlen($val)< 2)
    $val = "0".$val;
   $buf .= $val;
  }
  return $buf;
 }

 /**
  * 將十六進制流$string轉換成字符串
  * @param stream $string
  * @return string
  */
 private function fromHexString($string){
  $buf = "";
  for($i = 0; $i < strlen($string); $i += 2){
   $val = chr(hexdec(substr($string, $i, 2)));
   $buf .= $val;
  }
  return $buf;
 }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人自拍视频| 清纯唯美日韩制服另类| 亚洲国产精品久久久久秋霞不卡| 亚洲第一视频在线观看| 亚洲日本欧美日韩高观看| 欧美激情xxxx性bbbb| 中文字幕一区日韩电影| 亚洲精品美女久久| 国产精品美女主播在线观看纯欲| 国产精品777| 黄色一区二区在线| 亚洲18私人小影院| 亚洲二区在线播放视频| 不卡av在线网站| 亚洲a级在线观看| 国产成人精品综合| 粉嫩av一区二区三区免费野| 少妇久久久久久| 亚洲免费人成在线视频观看| 日韩成人在线视频网站| 在线观看欧美视频| 日韩久久午夜影院| 亚洲国产精彩中文乱码av| 97久久久久久| 日韩亚洲一区二区| 国产999精品视频| 伊人青青综合网站| 亚洲欧洲一区二区三区在线观看| 国产亚洲成精品久久| 亚洲欧美日韩另类| 国产精品男人爽免费视频1| 亚洲精品午夜精品| 亚洲日韩中文字幕| 亚洲qvod图片区电影| 亚洲精品国产成人| 亚洲伊人久久综合| 欧美性xxxx极品hd欧美风情| 欧美国产高跟鞋裸体秀xxxhd| 亚洲成人激情在线观看| 国产精品久久精品| 亚洲精品国产品国语在线| 国产精品一区二区3区| 国产视频久久久久久久| 日韩视频在线免费观看| 亚洲免费视频网站| 欧美高清在线视频观看不卡| 国产精品一区二区三区毛片淫片| 综合136福利视频在线| 国产精品av免费在线观看| 欧美亚洲国产视频| 国产精品影院在线观看| 亚洲成年人影院在线| 欧美专区日韩视频| 狠狠久久亚洲欧美专区| 国产欧美日韩中文| 亚洲欧洲激情在线| 亚洲国产一区二区三区四区| 国产91免费观看| 欧美一级电影久久| 亚洲国产精品大全| 欧美黄色片在线观看| 欧美日韩国产中文精品字幕自在自线| 日韩最新在线视频| 亚洲国产日韩精品在线| 欧美性极品少妇精品网站| 国产69精品久久久久9| 欧美日韩黄色大片| 少妇高潮久久久久久潘金莲| 亚洲一级一级97网| 久久精品久久精品亚洲人| 日韩一区二区三区在线播放| 欧美又大粗又爽又黄大片视频| 亚洲国模精品一区| 亚洲黄色在线看| 中文字幕不卡av| 国产精品69精品一区二区三区| 国产精品久久综合av爱欲tv| 日韩av理论片| 久久精品99久久久久久久久| 日本午夜精品理论片a级appf发布| 精品视频一区在线视频| 琪琪亚洲精品午夜在线| 精品视频在线播放免| 亚洲国模精品一区| 欧美一级在线亚洲天堂| 欧美交受高潮1| 日本精品免费观看| 亚洲欧美在线x视频| 亚洲美女福利视频网站| 一道本无吗dⅴd在线播放一区| 91亚洲国产成人精品性色| 91久久在线观看| 久久99亚洲热视| 国产噜噜噜噜噜久久久久久久久| 在线观看免费高清视频97| 91丝袜美腿美女视频网站| 欧美大码xxxx| 国产精品日韩在线播放| 性色av香蕉一区二区| 日韩中文字幕在线免费观看| 91在线观看欧美日韩| 亚洲a∨日韩av高清在线观看| 亚洲深夜福利在线| 日韩在线中文字幕| 91精品国产91久久久久久| 欧美日韩午夜激情| 亚洲第一精品夜夜躁人人爽| 91九色视频导航| 成人精品一区二区三区| 亚洲毛片在线看| 久久好看免费视频| 国产精品国产三级国产专播精品人| 日韩大胆人体377p| 伊人久久久久久久久久久久久| 视频直播国产精品| 久久天天躁狠狠躁夜夜爽蜜月| 精品国产一区二区三区久久狼5月| 日韩经典中文字幕在线观看| 一本色道久久综合狠狠躁篇怎么玩| 国内外成人免费激情在线视频| 国产精品亚洲一区二区三区| 亚洲午夜女主播在线直播| 亚洲精品999| 亚洲天堂av女优| 日韩福利在线播放| 久久久久这里只有精品| 国产日韩欧美一二三区| 亚洲视频在线观看免费| 精品久久久视频| 2020久久国产精品| 国产精品自拍小视频| 亚洲综合精品一区二区| 精品在线欧美视频| 国产精品吹潮在线观看| 日韩视频欧美视频| 国产精品免费一区二区三区都可以| 国产亚洲人成a一在线v站| 久久综合免费视频影院| 欧美亚洲午夜视频在线观看| 久久久女女女女999久久| 精品福利视频导航| 国产成人一区二区三区| 俺去了亚洲欧美日韩| 日本韩国欧美精品大片卡二| 国产一区二区三区视频在线观看| 亚洲第一页自拍| 日韩av在线免费看| 韩日精品中文字幕| 性欧美xxxx视频在线观看| 成人午夜在线影院| 国产欧美精品一区二区三区介绍| 日韩美女视频在线观看| 国产精品影院在线观看| 欧美极品在线视频| 欧美一级片一区| 在线日韩日本国产亚洲| 97免费视频在线播放| 日韩精品在线观看一区二区| 日韩视频免费在线| 日韩毛片中文字幕| 亚洲男人天堂古典| 久久久精品在线观看| 国产色视频一区| 欧美日韩在线一区|