4

在某些情况下,不允许组织使用或存储有用的密钥,例如 SSN 号码、电话号码等。

但是,这些唯一键对于匹配数据非常有用。因此,理论上,如果数据提供者能够为您提供 SSN 的散列值,并且您要存储该散列并使用它进行匹配,那么您将永远不必使用或存储 SSN。

对于像 SSN 这样的东西,什么是合适的散列函数?

4

2 回答 2

1

您需要像对待密码一样对待 SSN。使用强大的慢速散列算法(例如bcryptPBKDF2 )对它们进行散列,使用唯一的每条记录前缀和后缀盐。

散列 SSN 的缺点是它们是可预测的,并且熵非常小,这使得明文暴力破解非常容易。如果你能负担得起,我建议为这种事情投资硬件保护(即HSM )。事实上,您应该避免完全通过 SSN 来识别人员。

于 2012-06-06T18:01:41.523 回答
0

因此,理论上,如果数据提供者能够为您提供 SSN 的散列值,并且您要存储该散列并使用它进行匹配,那么您将永远不必使用或存储 SSN。

那是错误的;设计的哈希不是唯一的,不能用于唯一标识任何东西。如果您必须唯一标识某物,并且不允许使用其他人的标识符,则您必须提出自己的标识符。这就是为什么诸如加油卡、电影租赁卡等之类的东西。带有他们自己唯一的会员标识符。

于 2012-06-06T18:01:06.790 回答