如何存储密码管理器的密码?

时间:2012-05-10 18:05:37

标签: mysql passwords

你们如何在MySQL数据库中存储在线密码管理器的密码?没什么大的,只有少数用户。我不能真正地将它们或其他东西哈希,因为它是不可逆转的吗?像KeePass这样的程序如何实现这一目标?

提前致谢!

2 个答案:

答案 0 :(得分:3)

升级到答案

通常用户的密码在传输给您之前使用主密码加密,密码管理器;您将存储此类加密密码并在请求时将其返回给用户:然后,他们将使用主密码在自己的计算机上解密。您没有处理主密码或未加密的密码,因此您完全无法访问存储的基础密码。

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

答案 1 :(得分:-1)

实际上,散列密码是不可逆转的。但是你正是因为这个原因而对密码进行哈希:

  1. 哈希密码。插入数据库。
  2. 用户尝试登录,提供密码。用户提供的密码经过哈希处理。如果它与数据库中的内容匹配,请对用户进行身份验证。
  3. 程序通常提供以下内容:

    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
    

    尽管如此,这个问题非常广泛,可能会被低估。你不是在问一个具体问题,也不是说你到目前为止所尝试过的。