aesDemo.php:
例、
例、AES暗号化クラス
パブリック $iv = null;
パブリック $key = null;
パブリック $bit = 128;
プライベート $cipher;
パブリック関数 __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; ブレーク;
case 256:$this->cipher = MCRYPT_RIJNDAEL_256;
デフォルト: $this->cipher = MCRYPT_RIJNDAEL_128;
}
switch($this->mode) {
case 'ecb':$this->mode = MCRYPT_MODE_ECB; ブレーク;
case 'cfb':$this->mode = MCRYPT_MODE_CFB; :$this->mode = MCRYPT_MODE_OFB; ブレーク;
case 'nofb':$this->mode = MCRYPT_MODE_NOFB; ブレーク;
デフォルト: $this->mode = MCRYPT_MODE_CBC;
}
}
public function encrypt($data) {
$data =base64_encode(mcrypt_encrypt( $this->cipher, $this->key, $data, $this->mode, $this->iv));
$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));
<br> * // インスタンス化クラス <br> * // パラメータ $_bit: 形式、256、192、128 をサポート、デフォルトは 128 bytes <br> * // パラメータ $_type: 暗号化/復号化方式、cfb、cbc、nofb、ofb、stream、ecb をサポート、デフォルトは ecb<br> * // パラメータ $_key: キー、デフォルトは abcdefghijuklmno<br> * $ tcaes = new TCAES(); <br> * $string = 'laohu';<br> * // 暗号化 <br> * $encodeString = $tcaes->encode($string);<br> * // 復号 <br> * $decodeString = $tcaes- >デコード($encodeString);<br> *