首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过加密文本执行通配符搜索?

如何通过加密文本执行通配符搜索?
EN

Stack Overflow用户
提问于 2011-12-15 15:46:08
回答 3查看 455关注 0票数 2

我们有一个拥有大量用户的网站,由于PCI合规性问题,我们必须将他们的名字加密存储(我们使用河豚)。现在我们需要在管理面板中通过他们的名字有一个通配符搜索功能,我们不能以" in -query“的方式解密。

有什么通用的解决方案可以解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 2011-12-15 22:00:55

我可以想到两种可能的方法。

第一种方法在名称本身不是秘密的情况下工作,但与它们相关联的数据是秘密的。您可以设置单独的搜索索引:

代码语言:javascript
复制
Name                 Record Number
----                 -------------
John Q. Public       12345
Hector H. Suarez     54321
Katherine T. Carson  98712

搜索索引以查找相关的记录号。检索并解密该特定记录。

第二个是当名字本身是秘密的时候。基本上,将名称视为密码:使用加密安全的散列对每个名称进行散列,如SHA-256。在这种情况下,您不能使用salt,因为它是用于搜索的。您可能还需要对搜索进行预处理,因为"John Q.Public“和"John Q Public”(没有句号)将散列为非常不同的值。此搜索索引如下所示:

代码语言:javascript
复制
Hashed Name          Record Number
-----------          -------------
1A2BFF68C ... CAF4   12345
5820BAA5F ... 67FA   54321
2039F288A ... 9BC2   98712

对于每个搜索,您将对名称进行散列,并查找该散列。再次检索并解密相应的记录。除非您准备为所有主要搜索可能性设置许多类似的索引,否则不能执行“检索所有Smith”这样的部分名称搜索。

票数 1
EN

Stack Overflow用户

发布于 2011-12-15 15:48:13

您使用诸如Lucene之类的索引系统,为每个文档编制索引(已解密),并搜索此索引。

票数 0
EN

Stack Overflow用户

发布于 2012-01-30 23:14:59

请仔细阅读PCI-DSS 2.0版中标题为"PCI DSS Applicaility Information“的PCI - DSS部分。

阅读本文时,您会发现"PCI DSS要求3.3和3.4仅适用于PAN“。这可能是您的变通办法,因为您不必加密PAN以外的数据-这意味着名称可以以纯文本存储。

这不一定是最佳实践,但如果您必须具有能够通过文本进行通配符搜索的功能,则需要考虑这一点

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8516697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档