有正在使用的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進行加密,我不必關心這一點。我只是想讓密碼遠離客戶端的肉眼。 –