javascript – 如何在发布之前散列密码然后使用BCRYPT?

我正在建立一个登录系统,当登录时,密码当前从JavaScript发送到PHP文件.

PHP中,我使用以下代码进行哈希处理.

$hash = password_hash($_POST['password'], PASSWORD_BCRYPT);

在使用POST发送密码之前,我应该如何在JavaScript中散列密码?

我显然不想影响BCRYPT的安全性.

解决方法:

在客户端做的事情并不是由你真正控制的.我的意思是,即使您使用哈希密码,客户端也可能在散列/加密之前获取密码.

var password = document.getElementById('login').value;
console.log(password); // It is as simple as it
//hash password...

一个简单的例子上面解释一下,客户端可以获得这样的密码,或者其他人可以使用XSS攻击来获取密码.您应该尽最大努力保护您的客户免受XSS的侵害,但是您无法控制客户端发生的事情.

如果您担心的是Man In The Middle (MITM)攻击,最重要的是使用具有正确算法的TLS证书(这取决于您服务器的OpenSSL版本).
简而言之,使用HTTPS是您应该采取的措施,以保护您的客户免受MITM攻击.

所以根据我的说法,在发送之前不需要对通道进行散列/加密.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...