mcrypt_decrypt
我对php函数有一个小问题。首先,我使用一个 16 字节的字符串,并使用mcrypt_encrypt
;对其进行加密。然后,我使用base64_encode
, 并将输出放入mcrypt_decrypt
, 以获得初始字符串。
但输出不是预期的。我检查了base64
用于解码的解码字符串输入是否与mcrypt_decrypt
. 这是我的代码:
//encrypt
$str="KKQT9W4st7vmdkps";
$key="43625A8C1E4330BDF84DDEE3DD105037";
$block = mcrypt_get_block_size('rijndael_128', 'ecb');
$passcrypt=mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_ECB);
echo $passcrypt;
那输出PTfZ6Ephh8LTxXL4In33Og==
。解密脚本如下:
//decrypt
$str='PTfZ6Ephh8LTxXL4In33Og==';
$key='43625A8C1E4330BDF84DDEE3DD105037';
$str = base64_decode($str);
$str = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
$str, MCRYPT_MODE_ECB,''),"\0");
$block = mcrypt_get_block_size('rijndael_128', 'ecb');
echo $str;
并且输出不是KKQT9W4st7vmdkps
,-nγ kk7Ζn’T
而是。有任何想法吗?我正在使用 XAMPP 和 Apache 服务器。