在我的数据库中,我用
保存了密码password_hash($user->getPassword(), PASSWORD_BCRYPT);
在登录表单中,用户输入此密码,我将密码编码为bcrypt字符串,并将加密密码(因为我没有SSL)提交给服务器。
所以我的问题是可以比较用bcrypt生成的两个哈希值吗?
答案 0 :(得分:5)
在登录表单中,用户输入此密码,我将密码编码为bcrypt字符串,并将加密密码(因为我没有SSL)提交给服务器。
停止您正在做的事情并购买SSL证书。有几个地方(https://www.startssl.com/是一个)你可以免费获得一个,或者你可以向Namecheap等人支付7美元。
您已实施安全性的幻觉。在客户端隐藏密码不会带来任何有意义的安全性好处 - 任何MITM攻击者都必须将调整后的JavaScript副本提供给他们正在攻击的人(或者只是拦截散列密码,这实际上是用户的密码)您方案中的真实密码。)