gpt4 book ai didi

php - Mcrypt、PHP/MYSQL 和 Web 表单不适用于某些条目

转载 作者:行者123 更新时间:2023-11-29 18:42:40 25 4
gpt4 key购买 nike

我有一个 MYSQL 数据库,其中有一列数据使用 AES_ENCRYPT 加密。我还有一个表单,用户在其中输入一些数据,使用 Mcrypt 对其进行加密(请参阅下面使用的代码)并根据 MYSQL 数据库进行验证,然后如果存在匹配,则返回 true。

对于大多数情况,这工作得很好。然而,对于少量的提交,我在连接数据库时遇到了失败。对于相同的数据,它总是失败,但如果我尝试不同的数据,它就会成功。因此,数据有一些独特之处,这导致它失败,而且我无法发现模式。数据是相同长度的字符,只是字母和数字的组合不同,即 hr152698 或 tq452698

$mode=MCRYPT_MODE_ECB;
$enc=MCRYPT_RIJNDAEL_128;
$numblock=floor(strlen($id) / 16);
$pad_len= 16-(strlen($id) % 16);
$id=str_pad($id, (16*(floor(strlen($id) / 16)+1)),
chr($pad_len));
$encrypted_id=mcrypt_encrypt($enc, $ky, $id, $mode,
mcrypt_create_iv( mcrypt_get_iv_size($enc, $mode), MCRYPT_DEV_URANDOM));

我想知道这是否与上面代码中的数字 16 有关。如果输入某些文本,也许需要更高?保存此数据的 MYSQL 列设置为:varbinary(25)。

问候标记

最佳答案

感谢上面的建议,它让我沿着正确的思路思考。我没有转义 Mycrypt 结果,所以我生成了一些无效字符,导致上面的 MYSQL 错误。

我使用:$encrypted_id=mysql_real_escape_string($encrypted_id);来解析。

关于php - Mcrypt、PHP/MYSQL 和 Web 表单不适用于某些条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44846920/

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