如何通过ajax将加密响应从nodejs传递到客户端?

时间:2018-01-26 12:38:08

标签: javascript jquery html node.js ajax

我正在尝试加密以json格式通过ajax发送的密码。加密逻辑在我的server.js

如何从server.js传递加密响应。我能够加密,但我坚持传递这个加密的响应

server.js:

    app.post('/mylink',function(request,reply){ 
    var data = JSON.stringify(request.body.jsonblob);
    var pwd = request.body.jsonblob.Password;
    var cipher = crypto.createCipher(algorithm,password)
    var crypted = cipher.update(pan,'utf8','hex')
    crypted += cipher.final('hex');
    console.log("crypted"+crypted);
    reply.send(crypted);
     });

在我的html页面中调用ajax:

     var json_data = JSON.stringify({
                    "jsonblob" : {    
                         "Password": password   
                    }
                    });


          $.ajax({ 

            url:"/mylink",
            type: "post",               
            dataType: "json",      
            contentType: "application/json",
            data: json_data,                       
            success:function(response){
                if(response.status === "success")
                {
                    console.log(crypted);
                }

            },
            error: function(jqXHR, textStatus, errorThtrown) {
                console.log("error " +textStatus);
                }


          });

1 个答案:

答案 0 :(得分:0)

我无法想到您希望将加密密码返回给客户端的任何用例。您在服务器上加密和解密密码,以保护您的密码不会以明文形式存储在数据库中。

我认为您可能会混淆密码加密并生成JSON Web令牌,您可以在以后用它来验证用户身份。在这种情况下,您需要返回要在客户端保存的令牌。有很多关于如何构建安全的Node后端的精彩文章。这是我的最爱:

https://medium.freecodecamp.org/securing-node-js-restful-apis-with-json-web-tokens-9f811a92bb52

此外,如果您想保护密码以清楚显示请求内容,请确保使用HTTPS。