问题描述
我想在我的请求中发送它们时阻止我的秘密数据(例如“密码”)。
我在前端使用 React,后端使用 MongoDB。
实际上,我正在使用他的加盐和散列密码将用户注册到数据库,如下所示:
userSchema.pre('save',async function (next) {
if (!this.isModified('password')) {
next()
}
const salt = await bcrypt.genSalt(10);
console.log('this.password: ',this.password);
// password coming form Frontend is not still protected here,like '1234'
this.password = await bcrypt.hash(this.password,salt);
// password is protected like '$2a$10$gxNPkFvqRIFZPyMsB.Dmf.G52yQntT3LxJQHuteCaSZcpuZ0RPkdm'
})
但我也想在途中保护敏感数据(例如免受“中间人攻击”)。
那么,我应该如何实现用户密码的发送受保护,或者最好的体验方法是什么?
谢谢。
解决方法
使用非对称加密。
生成公私钥对,在前端用公钥加密密码,将密文发送给后端,在后端用私钥解密。