利用SHA256withRSA进行加密
1.npm install jsrsasign
2.加密
// 引入jsrsasign
import jsrsasign from 'jsrsasign'
// new一个RSA对象
let rsa = new jsrsasign.RSAKey()
// SHA256withRSA私钥
const k = `-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----`
// 将私钥 转成16进制
rsa = jsrsasign.KEYUTIL.getKey(k)
// 采用SHA256withRSA进行加密
const sig = new jsrsasign.KJUR.crypto.Signature({
alg: 'SHA256withRSA'
})
// 算法初始化
sig.init(rsa)
const newStr = '123456'
// 对123456进行加密
sig.updateString(newStr)
// 加密后的16进制转成base64,这就是签名了
const sign = jsrsasign.hextob64(sig.sign())
3.SHA256withRSA验签
let rsa = new jsrsasign.RSAKey()
// SHA256withRSA公钥
const k = `-----BEGIN PUBLIC KEY-----
公钥
-----END PUBLIC KEY-----`
// 将公钥转正16进制
rsa = jsrsasign.KEYUTIL.getKey(k)
// 采用SHA256withRSA进行加密
const sig = new jsrsasign.KJUR.crypto.Signature({
alg: 'SHA256withRSA'
})
// 初始化SHA256withRSA算法的对象
sig.init(rsa)
const newStr = '123456'
// 将123456进行加密
sig.updateString(newStr)
// 需要验证的签名
const sign = 'BTu4WzyXcbLrf8j1+o6TeKQ3ZGjxRU1hO'
// 将加密后的123456转成base64后跟sign签名进行验证
let b = sig.verify(jsrsasign.b64tohex(sign))
b为true 则表示验证通过