gpt4 book ai didi

PHP mcrypt_encrypt/mcrypt_decrypt 问题,返回不同的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:01 24 4
gpt4 key购买 nike

我一直在寻找答案,但在这里找不到。如果已经有人问过这个问题,请原谅。

我有一个加密和解密字符串的简单代码,字符串看起来一样,但是当使用 == 比较它们时,它们看起来并不相同,所以哈希值也不同..

这是我的代码:

$oppa = "rompish";
$opp_enc = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, "key", $oppa, MCRYPT_MODE_ECB);
$opp_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, "key", $opp_enc, MCRYPT_MODE_ECB);

echo $oppa."<br />".$opp_dec."<br />";

if ($oppa == $opp_dec) echo "YAY"; else echo "NOPE";

在页面上:

浪漫的嬉戏的不

请告诉我我做错了什么。

谢谢!

最佳答案

AES always encrypts things in blocks of 16 bytes. Apparently mcrypt_encrypt pads the string out with zero bytes until it is a multiple of 16. mcrypt_decrypt dutifully decrypts this but lacks the information to remove the padding. And you are fooling yourself because the displayed values look the same even though oppa_dec actually ends with 9 zero bytes. Use a sensible padding scheme instead. – GregS

要删除这些空字符,您可以使用 rtrim功能。通过它运行解密输出后,它应该相等。

关于PHP mcrypt_encrypt/mcrypt_decrypt 问题,返回不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15317354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com