我正在使用express.js作为后端构建单页应用。目前我正在使用passport.js本地策略进行身份验证,使用bcrypt在db上保存加密密码。在身份验证期间,用户提供的密码再次加密,并与存储在db上的密码相对应。但是,我目前正在以明文形式将密码发送到服务器,我理解这是一个非常糟糕且不安全的做法。要正确地做到这一点,我理解我必须:
在服务器上创建随机字节并将其发送到客户端
在客户端上创建随机字节
连接加密密码和两组字节并加密所有字节
将加密对象和客户端上生成的字节作为明文发送回服务器
在服务器上重现相同的加密对象并检查有效的身份验证
我可以使用bcrypt和客户端上的一些随机生成器再次执行此操作,但我有强烈的感觉我不应该自己实现它。有一些与护照或一些我不知道的节点库的集成?
答案 0 :(得分:2)
您可以使用HTTPS(SSL)加密服务器 - 客户端之间的通信