前端进行SHA256withRSA加密及其解密

利用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 则表示验证通过

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值