传入URL后密码解密不起作用

Owa*_*bal 0 php encryption passwords md5

我使用以下技术来加密/解密密码:

$key = 'abcd';
$password = 'password';

$encrypted_password = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $password, MCRYPT_MODE_CBC, md5(md5($key))));

$decrypted_password = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted_password), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
Run Code Online (Sandbox Code Playgroud)

上面的代码在同一页面上为我工作

但是,当我将URL中的加密密码传递给另一个网页时,例如:

example.com/authenticate.php?pass=CuESFcvXHnQkZaY79WUL3U2aY9TROkjZFETk9Ur+iFY=
Run Code Online (Sandbox Code Playgroud)

然后它不是使用相同的密钥以原始形式解密它,我得到一些垃圾数据作为结果.

我认为它类似于url 编码/解码问题?

有什么方法可以解决这个问题吗?

谢谢

dec*_*eze 6

+在URL中表示一个空格.如果你想通过任意数据的URL,尤其是数据可能包含特殊字符,urlencode把它在URL之前.