AESCBC-PHP源码
php代码
class AES_CBC_NoPadding
{
private $iv;
private $key;
private $blocksize;
public function __construct($key, $iv)
{
$this->blocksize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$this->key = substr(md5($key), 0, $this->blocksize);
$this->iv = substr(md5($iv), 0, $this->blocksize);
}
public function encrypt($text)
{
$pad = $this->blocksize - strlen($text)%$this->blocksize;
$text = str_pad($text, strlen($text) + $pad, "\0");
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key, $text, MCRYPT_MODE_CBC, $this->iv));
}
public function decrypt($text)
{
$text = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key, base64_decode($text), MCRYPT_MODE_CBC, $this->iv);
$len = strlen($text);
for($len--; $len >= 0; $len--)
{
if($text[$len] !== "\0")
{
$len++;
break;
}
}
return substr($text, 0, $len);
}
}
class AES_CBC_PKCS7Padding
{
private $iv;
private $key;
private $blocksize;
public function __construct($key, $iv)
{
$this->blocksize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$this->key = substr(md5($key), 0, $this->blocksize);
$this->iv = substr(md5($iv), 0, $this->blocksize);
}
public function encrypt($text)
{
$pad = $this->blocksize - strlen($text)%$this->blocksize;
$text = str_pad($text, strlen($text) + $pad, chr($pad));
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $this->key, $text, MCRYPT_MODE_CBC, $this->iv));
}
public function decrypt($text)
{
$text = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $this->key, base64_decode($text), MCRYPT_MODE_CBC, $this->iv);
$pad = ord(substr($text, -1));
if($pad < 1 || $pad > 32) {
$pad = 0;
}
return substr($text, 0, strlen($text) - $pad);
}
}
/php/40019.htmlwww.phpzy.comtrue/php/40019.htmlTechArticleAESCBC-PHP源码 php代码 class AES_CBC_NoPadding{private $iv;private $key;private $blocksize;public function __construct($key, $iv){$this->blocksize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);$this->key = substr(md5($key),...
PHP之友评论