为什么这个解密函数不能解密? Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' Fatal error: Call to undefined function mcrypt_create_iv() 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $iv = mcrypt_create_iv(mcrypt_get_iv_size($EnCoder_type,MCRYPT_MODE_ECB), MCRYPT_RAND);注意:$iv是依据随机数生成的,每次生成的并不一样!所以这个$iv也要作为密钥传递测试时要这样global $EnCoder_Key,$EnCoder_type, $iv; xuzuning(唠叨)谢谢你的帮助,问题解决了!吧修改后的结果贴出来希望对大家有用<?$EnCoder_Key = "My Love Is Fang"; //钥匙$EnCoder_type=MCRYPT_RIJNDAEL_128; //加密类型$iv = mcrypt_create_iv(mcrypt_get_iv_size($EnCoder_type,MCRYPT_MODE_ECB), MCRYPT_RAND);function Do_Crypt($s){ global $EnCoder_Key,$EnCoder_type,$iv; //$iv = mcrypt_create_iv(mcrypt_get_iv_size($EnCoder_type,MCRYPT_MODE_ECB), MCRYPT_RAND); $encrypted_string = mcrypt_encrypt( $EnCoder_type, trim($EnCoder_Key), $s, MCRYPT_MODE_CBC, $iv); $encrypted_string=bin2hex($encrypted_string); return $encrypted_string;}function Do_Uncrypt($s){ global $EnCoder_Key,$EnCoder_type,$iv; $s=trim($s); for ($i=0;$i<strlen($s);$i+=2) { $string_en.=chr(hexdec(substr($s,$i,2))); } //$iv = mcrypt_create_iv(mcrypt_get_iv_size($EnCoder_type,MCRYPT_MODE_ECB), MCRYPT_RAND); $decrypted_string = mcrypt_decrypt( $EnCoder_type, $EnCoder_Key, trim($string_en), MCRYPT_MODE_CBC, $iv); return trim($decrypted_string);}$encoder = Do_Crypt("谢谢xuzuning(唠叨)<br>");echo "加密数据:谢谢xuzuning(唠叨)<br>";echo "输出加密字符:".$encoder."<br>";echo "输出解密字符:".Do_Uncrypt($encoder)."<br>";?>结果:加密数据:谢谢xuzuning(唠叨)输出加密字符:1fdae8158c23bd1a100969d8dac88b7d83e75bb9b47b834ff0f8bdbb367287b0输出解密字符:谢谢xuzuning(唠叨) 求时间差问题 关于.htaccess设置404页面的问题 [询问]php中关于session的一点疑问 如何在Ftp目录里获取文件夹里面的文件【帮顶给分】 有什么方法可以查看php打印出来的语句? 如何快速架设PHP服务器? 关于通用用户名 如何在mysql中使用union?急!在线等! 请你们帮帮我?关于PHP+ORACLE! 为什么我的<!--#include file="bottom.php"-->不能显示 iframe里面竟然无法submit父页面的form? 请大家推荐些技术组合
注意:$iv是依据随机数生成的,每次生成的并不一样!
所以这个$iv也要作为密钥传递测试时要这样
global $EnCoder_Key,$EnCoder_type, $iv;
谢谢你的帮助,问题解决了!吧修改后的结果贴出来希望对大家有用
<?
$EnCoder_Key = "My Love Is Fang"; //钥匙
$EnCoder_type=MCRYPT_RIJNDAEL_128; //加密类型
$iv = mcrypt_create_iv(mcrypt_get_iv_size($EnCoder_type,MCRYPT_MODE_ECB), MCRYPT_RAND);
function Do_Crypt($s){
global $EnCoder_Key,$EnCoder_type,$iv;
//$iv = mcrypt_create_iv(mcrypt_get_iv_size($EnCoder_type,MCRYPT_MODE_ECB), MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt( $EnCoder_type, trim($EnCoder_Key), $s, MCRYPT_MODE_CBC, $iv);
$encrypted_string=bin2hex($encrypted_string);
return $encrypted_string;
}
function Do_Uncrypt($s){
global $EnCoder_Key,$EnCoder_type,$iv;
$s=trim($s);
for ($i=0;$i<strlen($s);$i+=2) {
$string_en.=chr(hexdec(substr($s,$i,2)));
}
//$iv = mcrypt_create_iv(mcrypt_get_iv_size($EnCoder_type,MCRYPT_MODE_ECB), MCRYPT_RAND);
$decrypted_string = mcrypt_decrypt( $EnCoder_type, $EnCoder_Key, trim($string_en), MCRYPT_MODE_CBC, $iv);
return trim($decrypted_string);
}
$encoder = Do_Crypt("谢谢xuzuning(唠叨)<br>");
echo "加密数据:谢谢xuzuning(唠叨)<br>";
echo "输出加密字符:".$encoder."<br>";
echo "输出解密字符:".Do_Uncrypt($encoder)."<br>";
?>
结果:
加密数据:谢谢xuzuning(唠叨)
输出加密字符:1fdae8158c23bd1a100969d8dac88b7d83e75bb9b47b834ff0f8bdbb367287b0
输出解密字符:谢谢xuzuning(唠叨)