node_jsonwebtoken(前端加密解密)使用

2021-11-25  本文已影响0人  阿杰_96c5

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)
})
上一篇下一篇

猜你喜欢

热点阅读