gpt4 book ai didi

mysql - AES_ENCRYPT 返回的字符串是否唯一?

转载 作者:行者123 更新时间:2023-11-29 03:08:27 24 4
gpt4 key购买 nike

我需要加密 MySQL 中的列,我正在使用 AES_ENCRYPT。我想找出一种在 WHERE 子句中使用此数据列的安全方法。我的问题是 -

1) 我可以使用相同的密码短语 AES_ENCRYPT WHERE 子句参数并在 WHERE 子句中使用生成的加密字符串吗?还是我必须对整个列运行解密?

例如,这样会安全吗?

SELECT * from TABLE WHERE Enc_COL= AES_ENCRYPT('someColValue','same_passphrase');

还是必须是

SELECT * from TABLE WHERE AES_ENCRYPT(Enc_COL,'same_passphrase')= 'someColValue';

我相信第二个会慢很多,所以我想知道第一个例子是否可行。

最佳答案

使用

SELECT * FROM `table`
WHERE `Enc_COL` = AES_ENCRYPT('text-to-encrypt', 'same_passphrase');

应该没问题。只需确保 Enc_Col 有一个索引,这样您就不必扫描整个表来获取结果。只要您使用相同的输入和键,您就会得到相同的输出。

请注意,不要对多个列使用相同的 key (确保使用某种 IV 或加密随机数,它们对您加密的每一列都是唯一的)。如果您使用相同的 key 加密所有行并且您的数据库遭到破坏,则更有可能有人找到该 key 。

关于mysql - AES_ENCRYPT 返回的字符串是否唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11853079/

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