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)
})
网友评论