储存帐号/密码
我正在开发一个基于网络的应用程序,需要存储用户名和密码。 需要帐户信息来代表用户执行二次身份验证,因此我不能简单地使用盐等单向哈希来存储用户名和密码。
假设我的基本要求无法改变,关于如何处理存储的任何建议这些帐户的? 使用机器密钥的对称加密? 在 web.config 中使用随机密钥? 使用基于 SQL 的加密?
I am working on a web based application that will need to store usernames and passwords. Account information will be needed to perform secondary authentication on behalf of users so I can't simply store usernames and passwords using one-way hashing with salt etc.
Assuming that my basic requirement can't change, any suggestions on how to handle the storage of these accounts? Symetric Encryption using the machine key? Using a random key in web.config? Using SQL based encryption?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为什么不使用内置的 MembershipProviders ?
http://msdn.microsoft.com/en-us/library/yh26yfzy。 ASPX
Why don't you use the builtin MembershipProviders?
http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx
SqlMemebershipProvider 拥有您所需的一切。 .NET 甚至还有一个内置应用程序可以准备您的数据库。
以下是数据库准备工具的 MSDN 页面
The SqlMemebershipProvider has everything you need. There is even a built-in app that comes with .NET that will prep your DB.
Here is the MSDN page on the db prep tool
此处的最佳做法是在将其传递给外部提供商之前不要询问此信息。 然后仅保留外部提供者的身份验证令牌,这样,如果用户直接访问外部资源,您只需在外部资源需要凭据的地方再次请求凭据。
The best practice here is to not ask for this information until the moment you pass it on to the external provider. Then only keep the external provider's authentication token, such that you only need to ask for credentials again at points where the external resource would require them if the user were accessing it directly.