Vue使用国密SM4加密

1 npm install gm-crypt 
1 const SM4 = require("gm-crypt").sm4;
2 let sm4Config = {
3   //配置sm4参数
4   key: "gDg4g8CQyIrs^bv2",   //这里这个key值是跟后端要的
5   mode: "ecb",               // 加密的方式有两种,ecb和cbc两种,也是看后端如何定义的,不过要是cbc的话下面还要加一个iv的参数,ecb不用
6   cipherType: "base64"
7 };
8 let sm4 = new SM4(sm4Config);
1 // 开始加密
2 let username = sm4.encrypt(tmpObj.username);
3 let password = sm4.encrypt(tmpObj.password);
 1 概述
 2 sm4加密有两种模式:ecb和cbc。两种模式的区别如下(下面文字来自百度):
 3 
 4 一、优bai点不同:
 5 
 6 ECB模式:1、简单;2、有利于并行计算;3、误差不会bai被传送;
 7 
 8 CBC模式:1、不容易主动攻击,安全性好于baiECB,适合传输长度长的报文,是SSL、IPSec的标准。
 9 
10 二、缺点不同:
11 
12 ECB模式:1、不能隐藏明文的模式;2、可能对明文进行主动攻击;
13 
14 CBC模式:1、不利于并行计算;2、误差传递;3、需要初始化向量IV
15 
16 三、概念不同
17 
18 1、ECB模式又称电子密码本模式:Electronic codebook,是最简单的块密码加密模式,加密前根据加密块大小(如AES为128位)分成若干块,之后将每块使用相同的密钥单独加密,解密同理。
19 
20 2、密码分组链接(CBC,Cipher-block chaining)模式,由IBM于1976年发明,每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量IV。
原文地址:https://www.cnblogs.com/PengZhao-Mr/p/15122340.html