【发布时间】:2018-05-14 07:01:00
【问题描述】:
我有一项服务,让用户可以在线存储他们的大家庭的信息(例如消息、视频等),以便在他们去世时共享。前 - 当我路过告诉他我爱他时,将此视频发送给我的侄子。
我有一个 JSON 结构化数据库,该数据库将用户的社会保险号存储为他们个人资料的标识符。
$salted_hashed_ssn: {
//important information for extended family such as vidoes and email addresses
}
当用户去世时,他们最亲近的家人会访问我的网站并输入死者的社会安全号码。然后我对它们进行哈希处理,看看是否在我的数据库中进行了匹配。如果匹配成功,我们将运行函数为大家庭共享重要信息。
为最坏的情况做准备,我希望尽可能安全地存储社会安全号码。因为我只需要使用社会安全号码作为标识符,我不必存储原始/纯文本 ssn 值。因此,我可以散列 ssns,但我需要对它们加盐以防止查找表。我的问题是,当用户输入已故用户的社会安全号码时,我无法查看使用了哪个盐键。
为了使其随机并防止查找表,您建议我如何对我的社会安全号码加盐?我应该每次只取 x 个字符吗?即 - 总是抓取社会安全号码的前 4 个字符,将它们散列到完整的 SSN,然后重新散列?
让 salted_hashed_ssn = SHA256(SSN 的前 4 个字符) + SHA256(SSN) ?
您建议如何设置 salt 和 hash?
【问题讨论】:
标签: encryption hash sha256 sha