2015-07-12 78 views
0

我知道使用salted哈希是将密码保存在数据库中的首选方法。但是,这仅适用于交互式目的。 例如,为非交互式登录保存密码

  1. 用户使用一个登记表填写密码,然后将其保存 作为数据库中的哈希盐腌条目。
  2. 下一次使用密码 登录时,会将其散列值与数据库 条目进行比较。

到目前为止好。如果我想自动登录本身,该怎么办?即,而不是用户通过在线形式输入密码来提交登录密码,我想将密码存储在本地机器的某处,以便我可以将其用于登录表单中的自动验证。麻烦的是,我不能在这里使用腌制哈希,因为它是单向的,因此我需要去加密。如果我选择加密,我需要使用一个安全密钥来解密,这个密钥也必须存储在某个地方。如果我需要加密,我该如何安全地做到这一点?如果不是,最好的方法是什么。这种事情有最佳做法吗?

我已经看到一些失败的实现已被破解。 SQL开发人员为例,https://stackoverflow.com/a/3109774/350136

回答

1

Mac OS X & iOS有Keychain用于保存凭据。

如果您无法安全地存储凭据,请使用token that can be revoked

"Remember me" cookies & app-specific passwords是相同的概念。

+0

谢谢,Keychain很有意思,但它适用于OS X.是否有任何跨平台解决方案? – toddlermenot

+0

@toddlermenot不确定其他平台可用。有一些关于StackOverflow的讨论[Windows](http://stackoverflow.com/questions/442923/windows-equivalent-of-os-x-keychain)&[Android](http://stackoverflow.com/questions/1925486 /机器人储存-的用户名和口令)。 – 2015-07-13 20:14:22