美文网首页
node_jsonwebtoken(前端加密解密)使用

node_jsonwebtoken(前端加密解密)使用

作者: 阿杰_96c5 | 来源:发表于2021-11-25 09:10 被阅读0次

    node_jsonwebtoken(前端加密解密)使用

    下载加密组件

    npm install jsonwebtoken
    

    生成公钥/私钥对(在git bash 中直接执行下面语句)

    rsa_private_key.pem 私钥文件

    rsa_public_key.pem 共要文件

    $ openssl     
    OpenSSL> genrsa -out rsa_private_key.pem 2048
    OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
    

    完成加密解密过程

    引入包
    // 引入加密包
    const jwt = require('jsonwebtoken')
    // 引入文件读取包
    const fs = require('fs')
    
    对称加密/解密
    // 秘钥
    let secret = 'secret'
    // 数据
    const data = { mobilePhone: '12321212121' }
    
    // 生成加密token
    let token = jwt.sign(data, secret,{expiresIn: 60 * 60*6 });
    console.log('对称加密的token')
    console.log(token)
    
    // 解密token
    let decoded = jwt.verify(token, secret);
    console.log(decoded)
    
    非对称加密/解密(RS256 算法)
    // 私钥加密
    const privateKey = fs.readFileSync('./rsa_private_key.pem')
    // 生成加密token    algorithm 加密方式   expiresIn有效时间(秒)
    const tokenRS256 = jwt.sign(data, privateKey,{algorithm: 'RS256',expiresIn: 60 * 60*6 })
    console.log('非对称私钥加密(RS256)的token')
    console.log(tokenRS256)
    
    
    
    // 公钥解密
    const publicKey = fs.readFileSync('./rsa_public_key.pem')
    // 解密token
    jwt.verify(tokenRS256, publicKey, (error, decoded) => {
      if (error) {
        console.log(error.message)
        return
      }
      console.log(decoded)
    })
    

    相关文章

      网友评论

          本文标题:node_jsonwebtoken(前端加密解密)使用

          本文链接:https://www.haomeiwen.com/subject/howwtrtx.html