与使用盐相比,在将密码存储到数据库中时,保护密码不会更安全。 注意:不关注性能,只关注安全性。哪一个会更安全。 另外,将密钥存储在另一个数据库服务器中,加密显然是不是更好。为什么在存储密码时使用盐而不是AES
回答
否。如果您使用密钥加密密码,并且攻击者窃取加密密码表和密钥表,他可以发现所有用户的密码并使用它们登录到您的系统(以及所有用户选择相同密码的其他系统)。这不安全。
如果您正确地“散列”密码,则没有密钥或快捷方式允许攻击者从身份验证表中恢复密码。哈希函数不能像密码那样反转。
此外,您为什么不能访问用户的密码有严重的法律问题。看到我的答案[这里](http://stackoverflow.com/questions/2283937/how-should-i-ethically-approach-user-password-storage-for-later-plaintext-retrie/2287672#2287672)。 – EJP 2015-02-11 01:10:11
但如果密码不好,我不只是在谈论'password123',但即使是'qeadzcwrsfxv1331'这样的密码也不是很好。腌制对彩虹桌有帮助,但蛮力不需要彩虹桌即使有更强的哈希, SHA2依然脆弱,因为它们是单向的。另外,盐通常以明文形式存在。 取而代之,使用适当的随机和长盐,然后使用AES对盐进行加密。但是,麻烦仍然是保持密钥的秘密,但它仍然比只使用非随机盐更好,就像大多数盐一样。 – Ramonster 2015-02-11 14:14:42
这里有几个链接来看看。 http://arstechnica.com/security/2013/05/how-crackers-make-minced-meat-out-of-your-passwords/ http://arstechnica.com/security/2012/12/ 25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/ – Ramonster 2015-02-11 14:16:08
- 1. 为什么密码盐被称为“盐”?
- 2. 如何存储密码盐
- 3. 使用AES来存储密码
- 4. AES加密 - 在Android上存储密码
- 5. 为什么不在NSUserDefaults中存储密码显而易见?
- 6. Android:Java:使用密钥而不是密码解密AES
- 7. laravel密码盐在哪里存储?
- 8. 什么是存储AES加密密钥的最佳方式?
- 9. 在PHP中使用AES加密时,应该在哪里存储密码密钥?
- 10. 盐渍密码哈希不保存盐
- 11. AES加密Java到iOs - 使用密码,iv和盐
- 12. 如何在AES数据库中存储AES加密密码
- 13. AES与盐和静态密码
- 14. 使用含盐的散列在数据库中存储密码;不知道在哪里/如何存储盐
- 15. pycrypto AES与密码,而不是键+ IV
- 16. 当我使用盐渍的CRYPT_MD5加密我的密码时,什么在加密?
- 17. AES双向加密加盐
- 18. 使用PBKDF2在MySQL数据库中存储密码和盐
- 19. 存储AES密钥
- 20. 为什么不用盐来比较密码在bcrypt中是否正确?
- 21. AWS使用什么密码/密钥进行AES-256加密?
- 22. 用AES加盐
- 23. 在数据库中存储密码哈希的未加密盐
- 24. 使用SHA512来存储登录密码而不是MD5
- 25. 为什么Unix密码使用盐值的系统时间和PID?
- 26. 为什么值被存储在寄存器0x605040c,而不是12?
- 27. 为什么AES使用相同的密钥加密相同字符串的密码总是不同的?
- 28. 为什么ASP.Net SessionPageStatePersister.ControlState存储在Page.RequestViewStateString中而不是在SessionState中?
- 29. 如何使用密码和盐以这种方式进行AES加密,以便在Java中仅使用相同的密码和盐进行解密
- 30. 在使用AES进行解密时,会话中是否存储了明文密码?
您正在使用哪种RDBMS? – 2015-02-09 14:04:55
我正在使用的RDBMS是MySQL。 – Ramonster 2015-02-09 14:14:58
然后,请删除sql-server标记 – 2015-02-09 14:18:27