如何安全地在数据库中存储密码?

Álv*_*cía 4 sql-server passwords

我已经读过,通过以下方式在数据库中存储passowrds的一种方法.要有一个包含username,hash和salt列的数据库表.盐永远不会出现.

我使用密码+ salt生成哈希.密码由用户发送,不存储在数据库中.如果生成的哈希与存储在数据库中的哈希相同,则密码正确.

但我有疑虑.如果我发送密码,而它是由电线传送它可以被嗅探,所以我认为这是neccesary太加密的通信.因此,使用哈希和盐只是为了保护管理员的数据?我的意思是,如果我将密码存储在数据库中,管理员可以轻松访问所有信息.如果我存储哈希,管理员不能访问用户becasue管理员的信息,没有信息的一半,只有盐,而不是密码.然而,当用户需要发送密码,这可以通过嗅探的人,这样口令就暴露出来.

如何保护用户信息的最佳方式?

谢谢.

Zo *_*Has 7

散列密码还可以保护您的数据免受外人的侵害.想象一下,如果有人使用SQL注入访问您的数据,他只会获得哈希而不是传递.您可以使用HTTPS通过网络进行安全通信,并使用现有的散列密码表来获得良好的安全模型.安全盐渍密码哈希