vue项目中SM4加密的使用
sm4加密,其实就是将字符串转成byte数组,再设置一个与解密相同的字符串,将byte的数据再转成二级制的数据,进行异或的运算,得到一组没有规则的字符串!概述sm4加密有两种模式:ecb和cbc。两种模式的区别如下(下面文字来自百度):一、优bai点不同:ECB模式:1、简单;2、有利于并行计算;3、误差不会bai被传送;CBC模式:1、不容易主动攻击,安全性好于baiECB,适合传输长度长的报文
sm4加密,其实就是将字符串转成byte数组,再设置一个与解密相同的字符串,将byte的数据再转成二级制的数据,进行异或的运算,得到一组没有规则的字符串!
概述
sm4加密有两种模式:ecb和cbc。两种模式的区别如下(下面文字来自百度):
一、优bai点不同:
ECB模式:1、简单;2、有利于并行计算;3、误差不会bai被传送;
CBC模式:1、不容易主动攻击,安全性好于baiECB,适合传输长度长的报文,是SSL、IPSec的标准。
二、缺点不同:
ECB模式:1、不能隐藏明文的模式;2、可能对明文进行主动攻击;
CBC模式:1、不利于并行计算;2、误差传递;3、需要初始化向量IV
三、概念不同
1、ECB模式又称电子密码本模式:Electronic codebook,是最简单的块密码加密模式,加密前根据加密块大小(如AES为128位)分成若干块,之后将每块使用相同的密钥单独加密,解密同理。
2、密码分组链接(CBC,Cipher-block chaining)模式,由IBM于1976年发明,每个明文块先与前一个密文块进行异或后,再进行加密。在这种方法中,每个密文块都依赖于它前面的所有明文块。同时,为了保证每条消息的唯一性,在第一个块中需要使用初始化向量IV。
使用
这里只介绍ecb模式的使用:
加密过程中,需要依赖于base64js相关方法。
相关js文件可从这里下载:链接: https://pan.baidu.com/s/1RfDe079I6n46spyw-mzDKg 提取码: vei2
其中包含base64js和SM4Encode文件
其中SM4Encode文件有所改动:
1、将两个文件下载下来并放到同一个文件夹下
2、在需要用到的地方引入方法
const {sm4}=await import("../../utils/SM4Encode.js")
3、调用encrypt_ecb方法进行加密
let _pwd=sm4.encrypt_ecb(加密明文,加密key值)
问题
在vue-cli3.0中会发现,使用require引入的base64js无效
原因是vue-cli3默认禁止common.js,使用babel解决解禁。具体操作如下:
安装@babel/plugin-transform-modules-commonjs
npm i @babel/plugin-transform-modules-commonjs -D
修改babel.config.js配置文件
module.exports = {
presets: [
'@vue/app'
],
plugins: [
[
'@babel/plugin-transform-modules-commonjs',
{
allowTopLevelThis: true,
},
],
],
}
更多推荐
所有评论(0)