1

你们将如何在 MySQL 数据库中存储在线密码管理器的密码?没什么大不了的,只是几个用户。我不能真正散列它们或其他东西,因为它是不可逆转的,对吗?像 KeePass 这样的程序是如何做到这一点的?

提前致谢!

4

2 回答 2

4

升级到答案

通常用户的密码在传输给您(密码管理器)之前使用主密码进行加密;您将存储此类加密密码并根据用户的要求将其返回给用户:然后他们将使用他们的主密码在自己的机器上解密。您在任何时候都不会处理主密码或未加密的密码,因此您完全无法访问您存储的基础密码。

如果您的应用程序是基于 Web 的,您可以在 Javascript 中执行加密操作(尽管您应该非常警惕 XSS 和浏览器安全漏洞)——斯坦福 Javascript 加密库是一个很好的起点。

于 2012-05-10T18:28:13.380 回答
-1

散列密码确实是不可逆的。但是您正是出于这个原因散列了密码:

  1. 散列密码。插入数据库。
  2. 用户尝试登录,提供密码。用户提供的密码经过哈希处理。如果它与数据库中的内容匹配,则验证用户。

程序通常提供以下内容:

setPassword(user, password); //puts the (hashed) password into a database table associated with user
authenticate(user, password); //for given user, checks to see if password is valid

也就是说,这个问题非常广泛,很可能会被否决。你不是在问一个具体的问题,也不是在说你到目前为止所做的尝试。

于 2012-05-10T18:14:04.097 回答