有正在使用的LDAP-auth
其工作的passport.js
实现。现在,下一步是使用Crypto-js
客户端,如下所示加密密码:PassportJS - 获取有效载荷数据之前,它被传递给passport.authenticate作为请求参数
Client-side angular-js controller
$scope.authenticate = function() {
var auth = new login();
auth.username = $scope.username;
auth.password = CryptoJS.AES.encrypt($scope.password); //// HERE
auth.$save(function (response){
console.log(response);
},function(err){
console.log(err);
});
}
Server-side service
.....
.....
app.post('/login', passport.authenticate('ldapauth'), (req, res) => {
console.log("req.user: ",req.user);
req.session.username = req.user[ldap.username];
req.session.userModel = req.user;
res.status(200).send({"success": 'success'});
});
.....
在服务器端服务调用passport.authenticate
与前请求'请求'aes加密的密码需要解密。这怎么能在这里实现? (现在的问题是不是加密,但如何才被传递给passport.authenticate的请求来获取数据)
我不确定你要在这里做什么,但SHA1是散列函数,而不是加密。它不能被“解密”。 – estus
为什么不使用HTTPS(SSL)来加密服务器客户端之间的通信? –
@estus - 的想法是让任何形式的暴力攻击的速度较慢,并保持从密码通过电脑检测到隐藏。网络通过https进行加密,我不必关心这一点。我只是想让密码远离客户端的肉眼。 –