gpt4 book ai didi

php - 快速搜索加密数据?

转载 作者:行者123 更新时间:2023-12-01 16:19:46 25 4
gpt4 key购买 nike

我需要在应用程序数据库中加密个人身份信息 (PII) 数据。该应用程序在系统中使用智能搜索,使用类似发音、名称词根和部分词搜索来快速查找名称和地址。

如果我们对这些字段(在应用程序层加密的 PII 数据)进行加密,搜索将受到记录量的影响,因为我们不能以正常方式依赖 SQL,搜索引擎(在应用程序中)会切换读取所有值,解密它们并进行搜索。

有什么简单的方法可以解决这个问题,这样我们就可以始终加密 PII 数据并为我们的用户群提供快速搜索功能?

我们使用的是 PHP Web/App Tier(Zend Server 和 SQL Server DB)。该应用程序目前不使用 Lucene 等技术。

谢谢

干杯

最佳答案

加密数据也使它看起来很像随机位串。这排除了通过索引进行快捷搜索的任何操作。

对于一些加密数据,例如社保号,你可以将数字的哈希值存储在单独的列中,然后索引这个哈希字段并搜索哈希值。这显然具有有限的实用性,并且在像“ROB%”这样的搜索名称中没有任何值(value)

如果您的数据库得到妥善保护可能听起来不错,但如果坏人可以闯入并窃取您的服务器或备份,则很难实现。如果它真的是要求(不仅仅是一个可协商的营销驱动项目),你将被迫遵守。

您可以协商以未加密的方式存储部分数据,例如姓氏的前 3 个字符等,以便您仍然可以拥有有用的(如果不是完美的)索引。

添加

我应该补充一点,您可能被允许对名称字段的一部分进行哈希处理,并在该哈希上进行搜索——假设您不允许存储未加密的部分名称——您再次失去了用处,但它可能仍然比没有索引好一点也不。

要使这种散列变得有用,它不能被播种——即,所有记录必须基于相同的种子(或没有种子)进行散列,否则您将无法执行表扫描。

您还可以创建一个覆盖索引,当然仍然是加密的,但是由于所需的 I/O 和内存减少,表扫描可能会相当快。

关于php - 快速搜索加密数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529067/

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