首先,我想重申一下,我不是在问如何对密码进行哈希处理(例如 salting / bcrypt / 等)。对于我完成的每个其他项目,我总是对密码进行散列/加盐处理,但在这种情况下,我需要暂时重新获得密码。
基本上,我需要在我的数据库中存储一个密码,然后再次访问它。在 codeigniter(我正在使用的框架)中,他们使用 mcrypt 以及一个密钥(他们建议应该是 32 个字符长)。这样就够了吗?
编辑:
问的原因:我需要能够向用户发送关键任务敏感 PDF 并希望对他们进行密码保护(最好使用相同的密码)。
在与 SO 和关闭的人讨论之后,我得出的结论是,您永远不应该加密密码并始终对其进行散列/加盐。想想有多少人为不同的服务使用相同的密码/电子邮件。因此,我得出的结论是,如果您确实需要加密某个项目,则应该使用单独的 PIN 或其他非必要项目。
然而,即使我打算走 pin 路线并保持密码散列,我仍然很好奇你在理论上将如何解决这个问题。