国密SM2+RSA+AES+MD5加解密,验签流程,工具示例,增强版完善版(包含前后端加解密验签流程)

文章讲述了在前端开发中,如何利用Hutool的SM2库进行加密数据的签名和验签,强调了在调用相关方法时必须提供必要的JSON参数以确保验证成功。
摘要由CSDN通过智能技术生成

详见资源包

https://download.csdn.net/download/x948130516/89119461?spm=1001.2014.3001.5503

前端引入依赖

使用hutool工具进行签名和验签时,前端需要传入第三个json对象参数,否则会验签失败

前端使用npm install --save sm-crypto引入依赖库

前端验签

/**
 * msg  明文数据即解密后数据
 * sigValueHex 后端传过来的签名(不需要进行任何处理)
 * publicKeyQ 服务端公钥 Q
 * 最后的json对象必传,否则验签失败
 */
sm2.doVerifySignature(msg, sigValueHex, publicKeyQ ,{der: true,hash: true,}) // 验签结果

const sm2 = require('sm-crypto').sm2
let signResult = sm2.doVerifySignature(
      "Hello World", "304502207b8a07c36a97c34278bf4352af13f4a1022f79816820c52a1a23d7499e24a609022100dcf53edf3f2d7f648fea027cacce90f6d101923b1215b2cb9aa6811064ed6cdd",
      publicKeyQ,
      { hash: true, der: true }
    );
console.log("验签结果:", signResult);


前端签名

/**
 * msg  明文数据
 * privateKeyD 客户端私钥 D
 * 最后的json对象必传,否则验签失败
 */
sm2.doSignature(msg, privateKeyD,{der: true,hash: true,}) // 签名

let sign = sm2.doSignature("Hello World",privateKeyD,{der:true,hash:true,}
);
console.log("签名:", sign);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值