【发布时间】:2019-04-15 03:25:16
【问题描述】:
我正在为我的 Web 应用程序使用 PHP 和 MySql。我有一个要求,我需要加密用户特定信息,比如姓名和电子邮件 ID。
$name = "Kevin John";
$encryptionMethod = "AES-256-CBC";
$secretHash = "25c6c7ff35b8879b151f2136cd13574";
$enc_name = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash);
我将此加密名称存储在我的数据库中。但真正的问题是我需要根据他们的名字搜索用户。例如:-
$qry = "select * from users where name like %john%";
任何建议表示赞赏
【问题讨论】:
-
我记得这个问题是在过去 2 或 3 个月内提出的。我会尝试再次找到它。
-
@RaymondNijland 感谢您宝贵的时间。请注意,我需要使用 LIKE 运算符 (%name%) 实现搜索
-
@HeraldCharley 不建议对要执行搜索的数据进行加密。我错过了上下文。为什么要加密名称?
-
@new_user 我有一个表,用于存储用户特定信息,例如姓名、电子邮件、出生日期。出于安全目的,我的客户不想将该信息存储为纯文本并希望加密该数据。但是我的 Web 应用程序具有搜索功能(自动建议),它使用名称作为查询参数来搜索数据库。任何可能的解决方案??????
-
在这种情况下,我建议您加密该用户信息表中除名称之外的所有内容。如果那是不可能的。一个可能的解决方案是查询所有数据并在应用层写入 stringContains 逻辑。
标签: php mysql search encryption