我已经读过将密码存储在数据库中的一种方法是通过以下方式。拥有一个包含用户名、哈希和盐列的数据库表。盐永远不会显示出来。
我用密码+盐生成哈希。密码由用户发送,不存储在数据库中。如果生成的哈希值与数据库中存储的哈希值相同,则密码正确。
但我有我的怀疑。如果我发送密码,它可能会在有线传输时被嗅探,所以我认为加密通信也是必要的。那么使用哈希和盐只是为了保护数据免受管理员的侵害?我的意思是,如果我将密码存储在数据库中,管理员可以轻松访问所有信息。如果我存储哈希,管理员无法访问用户的信息,因为管理员没有一半的信息,只有盐,没有密码。但是,当用户需要发送密码时,这可能会被某人嗅探,因此密码会暴露出来。
保护用户信息的最佳方式是什么?
谢谢。