我有一个ASP.NET(MVC 3)网站,用户将能够登录来执行某些操作。我需要将他们的密码存储在后端SQL Server 2008数据库中。我将使用表单身份验证(而不是Windows身份验证)。我只是想知道在数据库中存储密码的最佳方式是什么。阅读一些链接,如this,我倾向于使用哈希盐,但我不清楚如何存储盐值?盐值应该加密吗?任何人在结束这种方法之前都有其他想法,最佳实践,潜在问题或关键考虑因素?使用含盐的散列在数据库中存储密码;不知道在哪里/如何存储盐
1
A
回答
1
盐通常存储为散列的一部分,有时会作为前两个字节存储。如有必要,它可以作为单独的字段存储,特别是当盐较长时。盐不需要加密。您只需将salt + hash存储在合理安全(仅限管理访问权限)的位置。
不要有史以来存储实际的密码。你只需要salt和hash。当用户提供密码时,您使用他们声称的用户的存储盐进行加密,如果结果与存储的哈希匹配,则密码是正确的。
关于这个问题的好文章:http://www.obviex.com/samples/hash.aspx
1
一个典型的方法是将盐和散列一起,通过一些特殊的字符分隔。该值由身份验证机制创建并可传递给身份验证机制进行验证,以便应用程序本身不必知道该值同时包含盐和哈希。
盐没有被加密存储。
相关问题
- 1. 如何在数据库中存储盐渍散列密码
- 2. laravel密码盐在哪里存储?
- 3. 如何存储密码盐
- 4. 盐不存储在数据库中yii2
- 5. 使用PBKDF2在MySQL数据库中存储密码和盐
- 6. 在哪里存储密码盐以及如何获取它
- 7. 我们在哪里存储密钥/密码/盐进行加密?
- 8. 在数据库中存储密码哈希的未加密盐
- 9. ASP.NET身份 - 盐在哪里存储?
- 10. 盐在数据库中存储错误。
- 11. 如何在mysql数据库中存储盐以实现安全密码加密?
- 12. 密码散列,盐值和哈希值的存储
- 13. 生成和使用时存储在数据库中盐的crypt()
- 14. 为什么在存储密码时使用盐而不是AES
- 15. 存储密码盐有什么意义?
- 16. 如何在数据库中存储为哈希创建的盐?
- 17. 盐渍密码哈希不保存盐
- 18. 为什么我的散列/盐技术存储密码不起作用?
- 19. 如何用随机盐散列密码?
- 20. 如何在数据库中存储散列密码
- 21. 有人可以解释盐如何帮助存储散列密码?
- 22. 如何加盐和散列密码
- 23. 在mysql数据库中存储值变化的盐值
- 24. c#验证存储在SQL数据库中的散列密码
- 25. 用于散列密码的双盐?
- 26. BCrypt。如何用python3存储盐?
- 27. 在用户注册时在客户端散列密码,数据库仅存储散列。登录时如何再次使用相同的盐?
- 28. 加密密码不是保存在数据库,但只有盐密码
- 29. 将密码盐与密码哈希分开存储?
- 30. 在哪里存储jasypt解密密码