function encrypt($str, $key) {
$block = mcrypt_get_block_size(‘des’, ‘ecb’);
$pad = $block – (strlen($str) % $block);
$str .= str_repeat(chr($pad), $pad);
$tt = mcrypt_encrypt(MCRYPT_DES,$key, $str,MCRYPT_MODE_ECB);
return base64_encode($tt);
}
function decrypt($str, $key) {
$str = base64_decode($str);
$str = mcrypt_decrypt(MCRYPT_DES, $key, $str, MCRYPT_MODE_ECB);
$block = mcrypt_get_block_size(‘des’, ‘ecb’);
$pad = ord($str[($len = strlen($str)) – 1]);
return substr($str, 0, strlen($str) – $pad);
}
在使用以上DES加密解密过程中报了错,经查原来是PHP版本中$key的长度不能超过8位,之前的KEY随机生成了14位。