溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

NodeJs crypto加密制作token的實(shí)現(xiàn)代碼

發(fā)布時(shí)間:2020-10-02 19:28:41 來(lái)源:腳本之家 閱讀:154 作者:學(xué)賢社 欄目:web開(kāi)發(fā)

Node.js 內(nèi)置的 Crypto 庫(kù) ,它提供各種加密算法,可以非常方便地讓我們使用密碼技術(shù),解決應(yīng)用開(kāi)發(fā)中的問(wèn)題。主要支持 hash(哈希),hmac(密鑰哈希),cipher(編碼),decipher(解碼),sign(簽名)以及 verify(驗(yàn)證)等。crypto 英文原意就是秘密成員的意思。

使用方法大概如下:

crypto.createHash(algorithm) 指定使用的加密方式

var crypto = require("crypto");//加密
crypto.getHashes()

顯示內(nèi)部支持的加密方式。

  • hash.update(data) 指定要加密的內(nèi)容(data)
  • hash.digest("hex") 指定加密的編碼方式,可以為hex binary或者base64。

舉個(gè)例子:

var crypto = require("crypto");//加密

var a = crypto.createHash("md5").update("12").digest('base64');
console.log(a)

加密結(jié)果為c20ad4d76fe97759aa27a0c99bff6710 對(duì)比使用 MD5 加密工具加密的相同

NodeJs crypto加密制作token的實(shí)現(xiàn)代碼

二、制作 token

// //登陸
app.post("/login" , (req,res)=>{
  //處理post請(qǐng)求
  var form = new formidable.IncomingForm();
  form.parse(req, function(err, fields, files) {

    //判定是否正確登陸
    User.find({
      "username" : fields.username ,
      "password" : fields.password
    }).exec((err,docs)=>{

      if(docs.length){
        //登陸成功
        req.session.login = true;
        req.session.username = fields.username;

        var token = crypto.createHash("sha256").update(fields.username + fields.username).digest('hex');
        res.json({"result" : 1 , "token": token});
      }else{
        res.json({"result" : -1});
      }
    });
  });
});

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI