react+vue 前端国密算法sm2、sm3 、sm4的js ts实现

02-27 阅读 0评论

1. 简单介绍下SM2 和 SM3

react+vue 前端国密算法sm2、sm3 、sm4的js ts实现,react+vue 前端国密算法sm2、sm3 、sm4的js ts实现,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,安装,安全,第1张
(图片来源网络,侵删)

SM2 算法:是一种公钥加密算法,它的密钥长度为 256 位,安全性较高。可用于数字签名、密钥协商等场景。

SM3 算法:是一种对称加密算法,用于消息摘要和数字签名等场景。它的密钥长度为 256 位,安全性较高。SM3 算法与 SM2

算法相互配合,提高了整体安全性能。

2. 接下来讲前端如何实现

  • 安装
    npm install  sm-crypto
    yarn add sm-crypto
    
    • sm2 、sm3 引入写法
       require('sm-crypto').sm2
       
       require('sm-crypto').sm3
      
      • SM2 非对称加密写法

        str是需要加密的字符串

        cipherMode // 1 - C1C3C2,0 - C1C2C3,默认为1

        react+vue 前端国密算法sm2、sm3 、sm4的js ts实现,react+vue 前端国密算法sm2、sm3 、sm4的js ts实现,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,安装,安全,第2张
        (图片来源网络,侵删)

        PUBLIC_KEY是后端给你的公钥,长度为130位,记住是以04开头

        export function sm2Encrypt(str: string, cipherMode = 1) {
          const sm2 = require('sm-crypto').sm2;
          
          // 默认生成公钥 130 位太长,可以压缩公钥到 66 位
          const compressedPublicKey = sm2.compressPublicKeyHex(PUBLIC_KEY); 
          
          // compressedPublicKey 和 PUBLIC_KEY 等价
          const encryptData = sm2.doEncrypt(str, compressedPublicKey, cipherMode);
         
          // 最后一步一定要记住再拼接04
          return `04${encryptData}`;
        }
        
        代码里面引入,加密密码
        sm2Encrypt(password,1)
        
        • HMAC-SM3签名算法写法

          data是签名加密数据,例如:账号+密码+时间戳(需要跟后端开发协商)

          pwd是是第二个参数,我们这里要求的是传密码,要求为 16

          进制串或字节数组,这里的strToHex方法就是将密码转为16进制

          export function sm3Sign(data: string, pwd: string) {
            const sm3 = require('sm-crypto').sm3;
            
            return sm3(data, { key: strToHex(pwd) });
          }
          

          将字符串转为16进制方法,我这里是自己封装了一个,还有很多方法可以实现转16进制,大家可以自己百度学习

          export function strToHex(str: string) {
            var hexCharCode = [];
            
            for (var i = 0; i  
          
          代码里面引入
          sm3Sign(name+password+timestamp, password)
          

          参考链接:sm2 sm3 sm4 加密实现

          react+vue 前端国密算法sm2、sm3 、sm4的js ts实现,react+vue 前端国密算法sm2、sm3 、sm4的js ts实现,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,我们,安装,安全,第3张
          (图片来源网络,侵删)

          校验工具:在线加密解密工具


免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]