在我们的应用程序中保留/验证用户登录凭据的最佳方法是啥
Posted
技术标签:
【中文标题】在我们的应用程序中保留/验证用户登录凭据的最佳方法是啥【英文标题】:What is the best way to keep/validate user login credentials in our application在我们的应用程序中保留/验证用户登录凭据的最佳方法是什么 【发布时间】:2016-11-08 10:49:21 【问题描述】:在使用 mysql 作为数据库和 JSP/Servlet 作为前端的 Web 应用程序中保留/验证用户登录凭据的最佳方法是什么。
我浏览了几个博客,它说加密 MD5 和存储用户密码不是很好的做法,它可能会受到冲突攻击。我们如何实现可靠且安全的登录以供最终使用。
【问题讨论】:
碰撞doesn't seem to be very likely。只需为每个用户生成一个盐,对密码进行散列,然后将加盐的散列写入数据库。 【参考方案1】:这是主观讨论,答案取决于您现有的系统:
最好的选择是散列。
以散列格式存储密码(使用任何最新的散列机制,JAVA 8 也包含一个)并将其存储在数据库中。
Hash 传入的密码,并与存储在 DB 中的哈希值进行匹配。
【讨论】:
对字典攻击和查找表开放。还应该为每个用户生成一个合理长度的随机盐。以上是关于在我们的应用程序中保留/验证用户登录凭据的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章