php – 在MySQL中搜索加密数据的最佳方法

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 在MySQL中搜索加密数据的最佳方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在将加密数据保存到 MySQL之前使用 PHP进行加密.我相信,从长远来看,这是一种比使用MysqL的AES_ *功能更好的方法.

我现在的问题是,除了存储可搜索的哈希数据版本之外,是否有一种有效的方法搜索加密数据?例如,每个数据两列:First_name_encrypted,first_name_hashed.

$hashed_seArch = myhash('John');    
$q = "SELECT * From table WHERE first_name_hashed = '$hashed_search'";

这就是我现在所做的,有更好的方法吗?

解决方法

关闭,但没有雪茄.见:How to search encrypted information with a blind index.

例如,使用authenticated encryption library而不是仅使用MysqL的内置AES _ *()功能

$first_name_hash = hash_hmac('sha256',$firstName,$secretKey);
$stmt = $db->PRepare('SELECT * From table WHERE first_name_idx = ?');
$result = $db->execute([$first_name_hash])
    ->fetch(PDO::FETCH_ASSOC);
if ($result) {
    $first_name = Crypto::decrypt($result['first_name_encrypted'],$otherSecretKey);
}

基于HMAC-sHA256的盲目索引优于简单散列.

另外:使用经过身份验证的加密这是不容谈判的.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 在MySQL中搜索加密数据的最佳方法全部内容,希望文章能够帮你解决php – 在MySQL中搜索加密数据的最佳方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。