gpt4 book ai didi

php - 如何加密数据以便用LIKE执行SQL查询?

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

请耐心等待,我不是密码学方面的专家。我的问题可能非常基本,但我在谷歌上搜索了很多,但我仍然感到困惑。

在一个PHP项目中,我需要对数据库中保存的数据进行加密/解密。在之前的项目中,我使用了 aes128 加密,一切顺利。但现在我有不同的需求。我需要使用运算符 LIKE 在数据库中执行查询。显然,对字符串的一部分进行加密并不包含在对整个字符串的加密中。

四处搜索,我意识到也许我必须使用对称 key 算法(如凯撒密码)。但是我用 php-encryption 库 ( https://github.com/defuse/php-encryption ) 做了一个测试,我得到了以下结果:

MAMMA = ÿŸNq!!83=S™÷á;Bª¯‚óØ š‹ æ%§0 %? _† Ÿ&0c—âÐÜÉ/:LSçï; յ嬣§.öÒ9

MAMMAMIA = (Ò Î{yG : [&¶›J'Õ6÷ííG£V­­{ÉsÙ=qÝ×.:ÍÔ j…Qž¹×j¶óóþ¡ÔnÛŠ *å­n\hhN

第一个单词的加密不包括在第二个单词的加密中。显然 simmetric 算法不适合我的需要。

使用 PHP 可以使用什么来实现我的目标?谢谢!

最佳答案

最简单的方法是使用 mysql 加密/解密功能,并“即时”执行这两项操作。

插入和加密数据:

insert into mytable (secret) values AES_ENCRYPT('SomeTextToHide','myPassword');

使用like搜索加密值

select * from mytable where AES_DECRYPT(secret,'myPassword') like '%text%';

关于php - 如何加密数据以便用LIKE执行SQL查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35431832/

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