我有一个带有社会安全号码的表单,我需要编写代码来检查它是否在过去两天内输入。这一切都很容易。
我目前的计划是创建一个表ssn_hash(id, ssn_hash, date)
并对ssn进行哈希/盐化,然后将它们插入到数据库中。之后,创建一个显示持续两天的视图。 salt是从表单中获取的一些其他用户数据。
我想知道两件事:
答案 0 :(得分:1)
crypt
完全没问题:
openssl_random_pseudo_bytes
的内容。attr_encrypted
,一个流行的Ruby on Rails gem就是这样做的。只需确保为每个条目生成一个独特的盐。切勿重复使用盐。CRYPT_BLOWFISH
或CRYPT_SHA512
。答案 1 :(得分:1)
如果您需要快速查看以查看是否已使用该号码,密码加密功能将无法为您提供帮助。相反,您必须使用直接的SHA1类型哈希,以便进行反向查找。
您希望绝对确定您的服务器是否已正确保护。定期清除此表中的数据可能也是一个好主意。