存储敏感信息的加密哈希值有多安全?

时间:2017-01-17 15:13:39

标签: hash cryptography bcrypt pii

尝试找到减少系统中重复联系人条目的方法。姓名,电子邮件地址,家庭住址和电话号码可能会发生变化,因此这些不是100%唯一标识符。

但是,出生日期和SSN不会改变。我正考虑将date_of_birth-ssn的组合存储为加密哈希,以唯一标识联系人并合并重复项。

我的理解是它在数学上是不可能的"为了扭转哈希值,它安全了#34;以这种方式存储ssn

我知道最安全的方法是不存储任何东西。但是,我不确定我可以用什么其他信息来唯一识别一个人。

是否有更好的解决方案可以唯一识别不会使用ssn等敏感信息的人?

1 个答案:

答案 0 :(得分:2)

这绝对是安全。

通常,您无法撤消哈希值。如果我有大量随机数据并给你哈希,你就无法找回blob。这不是你提出的建议。

一年365天,每个人都不到100岁,只有大约36500个可能的DoB(好吧,有些人超过100,但不是你的联系人 - 可能的DoB的实际数量可能大约是20,000)。 SSN是9位数,因此只有1,000,000,000个可能的值(实际上要少得多)。

总而言之,有20,000,000,000,000种可能的组合。听起来很多?不是。我使用的笔记本电脑每个核心每秒可以处理超过1100万个哈希值。它可以在1,707,026秒或19天内测试所有可能的组合。有一个4岁的笔记本电脑核心。一个功能强大的服务器有20个核心,花费几千美元(没有专门的硬件)可以在几小时内准备好这个表。然后我可以反转哈希函数,但不能反转你可能看到的输出子集。