【发布时间】:2012-05-19 08:47:00
【问题描述】:
你们将如何在 MySQL 数据库中存储在线密码管理器的密码?没什么大不了的,只是几个用户。我不能真正散列它们或其他东西,因为它是不可逆转的,对吗? KeePass 之类的程序是如何实现这一点的?
提前致谢!
【问题讨论】:
-
通常用户的密码在传输给您之前使用主密码进行加密;然后,您将存储加密的密码并根据用户的请求将其返回给用户:然后他们将使用他们的主密码在自己的机器上解密。您在任何时候都不会处理主密码或未加密的密码,因此您完全无法访问您存储的底层密码。
-
@eggyal 我将如何通过 PHP 做到这一点?我知道我需要一个主密码,但是如何用这个主密码反转一个散列字符串?
-
好吧,如果您遵循我描述的模式,您将不会在 PHP(这是服务器端)中执行加密 - 您应该在客户端执行。如果您的应用程序是基于 Web 的,您可以使用 Javascript 来完成(尽管您应该非常警惕 XSS 和浏览器安全漏洞) - Stanford Javascript Crypto Library 是一个很好的起点。
-
啊,现在我重新读了一遍,我明白你的意思了。尽管我是一名新手程序员(并且是 StackOverflow 的新手),但我会研究 Crypto Library,并且可能需要一段时间才能发现我将如何做到这一点。无论如何,谢谢你的回答!我无法将 cmets 设置为接受的答案,那么我现在需要做什么?
-
我已经发布了答案。 :)