由于URL里面的信息比较重要,所以我使用了如下代码,
/* 开启加密算法/ */
$td = mcrypt_module_open('twofish', '', 'ecb', '');/* 建立 IV,并检测 key 的长度 */
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
$ks = mcrypt_enc_get_key_size($td);/* 生成 key */
$key = substr(md5('very secret key'), 0, $ks);/* 初始化加密程序 */
mcrypt_generic_init($td, $key, $iv);/* 加密, $encrypted 保存的是已经加密后的数据 */
print $encrypted = mcrypt_generic($td, 'This is very important data');/* 检测加密句柄 */
mcrypt_generic_deinit($td);/* 初始化加密模块,用以解密 */
mcrypt_generic_init($td, $key, $iv);/* 解密 */
$decrypted = mdecrypt_generic($td, $encrypted);/* 检测解密句柄,并关闭模块 */
mcrypt_generic_deinit($td);
mcrypt_module_close($td);/* 显示原始字符串 */
echo trim($decrypted)."\n";只是由于加密的参数无法传递过去,所以用base64_encode了一下,传过去再base64_decode再解密却丢失了一些数据,请问一下怎么避免这种问题