21,887
社区成员
发帖
与我相关
我的任务
分享
Centos5.2 + Apache/2.2.11 + (Unix) PHP/5.2.9 + mcrypt/2.5.8
<?php
function encrypt($data, $key) {
//MCRYPT_RAND|MCRYPT_DEV_URANDOM|MCRYPT_DEV_RANDOM
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB), MCRYPT_DEV_RANDOM);
$data = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);
return bin2hex($data);
}
function decrypt($data, $key) {
if(''==$data)return '';
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB), MCRYPT_DEV_RANDOM);
$data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, hex2bin( $data ), MCRYPT_MODE_CBC, $iv);
return str_replace(chr(0), '', $data);
}
function hex2bin($data) {
if(''==$data)return '';
for($i=0, $len = strlen($data);$i<$len;$i+=2)
$return .= pack("C",hexdec(substr($data,$i,2)));
return $return;
}
$key = 'key';
$data = '$#$$$$$$$$$$$$$$$$$$';
echo( 'key:' . $key. '<br>' );
echo( 'data:' . $data . '<br>' );
$temp = encrypt($data, $key);
echo( 'encrypt:' . $temp . '<br>' );
$temp = decrypt($temp, $key);
echo( 'decrypt:' . $temp . '<br>' );
?>
$iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC), MCRYPT_RAND);
$data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, hex2bin( $data ), MCRYPT_MODE_ECB, $iv);