Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed 'MCRYPT_RIJNDAEL_128' Fatal error: Call to undefined function mcrypt_create_iv() 

解决方案 »

  1.   

    $iv = mcrypt_create_iv(mcrypt_get_iv_size($EnCoder_type,MCRYPT_MODE_ECB), MCRYPT_RAND);
    注意:$iv是依据随机数生成的,每次生成的并不一样!
    所以这个$iv也要作为密钥传递测试时要这样
    global $EnCoder_Key,$EnCoder_type, $iv;
      

  2.   

    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(唠叨)