在将用户密码发送到Web服务器之前,客户端浏览器如何最好地对其进行哈希处理,以便仅发送哈希值而不是明文密码?(假设使用HTTP而非HTTPS)
并非所有人都在其浏览器中启用了JavaScript,甚至在明文通道上发送哈希的想法我认为并不足够安全。
我建议您考虑使用SSL安全连接。
像jQuery加密库这样的JavaScript端加密可以阻止窃听者。然而,中间人攻击(MITM)仍然可能发生。除非您使用共享主机(没有专用IP)或您的网站接收的流量太大,无法简单地加密所有连接(JS、CSS、HTML等),否则强烈建议选择SSL/TLS作为最终选择。
你为什么要这样做呢?实际上,密码哈希已经成为了密码,如果一个中间人拦截了哈希值,他就可以使用它来进行身份验证并以用户的身份执行任何操作。另一方面,如果你不相信中间人攻击,为什么不直接发送密码本身呢?