0

我有这样的代码

function EnDeCrypt($text, $key, $s = 1){
        $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
        switch ($s) {
            case '0':
                return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB, $iv));
                break;
            case '1':
                return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv));
                break;
            default:
                return FALSE;
                break;
        }
    }

如果我在一个脚本中调用 EnDeCrypt,一切正常,如果我尝试在获取参数中将加密数据传递到不同的服务器-我无法解密(获取这样的字符串 ŸTe³qëêyÀÝ)

key equals, result put throw urlencode\urldecode-不要解密

尝试传递向量 mcrypt_create_iv -nothing

4

1 回答 1

4

要解密,您需要具有$iv用于加密的相同初始化向量 ( )。

将它作为参数传递给您的函数,一切都应该没问题。

于 2011-03-24T16:23:31.823 回答