<分区>
Possible Duplicate:
About password hashing system on client side
我必须保护我的网站用户的密码。我所做的是在服务器端使用 MD5 加密 散列。但问题是密码在到达服务器之前一直是明文形式,这意味着可以使用流量监控来捕获密码。所以我想要的是使用客户端密码加密/哈希机制并发送加密/哈希密码。
谁能告诉我这样做的方法是什么?
<分区>
Possible Duplicate:
About password hashing system on client side
我必须保护我的网站用户的密码。我所做的是在服务器端使用 MD5 加密 散列。但问题是密码在到达服务器之前一直是明文形式,这意味着可以使用流量监控来捕获密码。所以我想要的是使用客户端密码加密/哈希机制并发送加密/哈希密码。
谁能告诉我这样做的方法是什么?
最佳答案
这不安全,原因很简单:
如果您在客户端散列密码并使用该 token 而不是密码,那么攻击者将不太可能找出密码是什么。
但是,攻击者不需要找出密码是什么,因为您的服务器不再需要密码 - 它需要 token 。而且攻击者确实知道 token ,因为它是通过未加密的 HTTP 发送的!
现在,有可能将某种质询/响应形式的加密组合在一起,这意味着相同的密码会在每次请求时产生不同的 token 。然而,这将要求密码以可解密的格式存储在服务器上,这并不理想,但可能是一种合适的折衷方案。
最后,您真的要要求用户在登录您的网站之前打开 javascript 吗?
无论如何,SSL 不再是昂贵或特别难以设置的解决方案
关于javascript - 客户端密码加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4121629/
相关文章:
javascript - RxJS,为什么 fromEvent() 会为每个订阅注册一个新事件?
.htaccess - 为子域强制执行不带 www 的 https
javascript - 使用时间戳 Node js从mongodb获取今天导入的数据
javascript - 为什么 d3each() 函数仅迭代列表中的第一项?
docker - 来自 docker Letsencrypt cert 和 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 的 Keycloak
java - 如何将 Rome 日期格式 "Sun Jan 08 02:25:00 IST 2012"日期转换为sql日期