位置: IT常识 - 正文

vue普通加密以及国密SM2、SM3、sm4的使用(vue前端加密)

编辑:rootadmin
vue普通加密以及国密SM2、SM3、sm4的使用 相关网址

推荐整理分享vue普通加密以及国密SM2、SM3、sm4的使用(vue前端加密),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue加密 服务端解密,vue 代码加密,vue 加密解密,vue数据加密,vue 加密解密,vue sha256加密,vue数据加密,vue 加密,内容如对您有帮助,希望把文章链接给更多的朋友!

vue普通加密以及国密SM2、SM3、sm4的使用(vue前端加密)

sm-crypto:https://www.npmjs.com/package/sm-crypto

介绍1. SM2是非对称加密算法

它是基于椭圆曲线密码的公钥密码算法标准,其秘钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。可以满足电子认证服务系统等应用需求,由国家密码管理局于2010年12月17号发布。

2.SM3是一种密码杂凑算法

用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。它是在SHA-256基础上改进实现的一种算法,采用Merkle-Damgard结构,消息分组长度为512bit,输出的摘要值长度为256bit。

3.SM4是一种分组密码算法

SM4算法是一种分组密码算法。其分组长度为128bit,密钥长度也为128bit。加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是使用轮密钥相反,其中解密轮密钥是加密轮密钥的逆序

普通加密安装依赖npm install crypto-js新建utils/Crypto.js文件/**密码加密工具*/import CryptoJS from 'crypto-js'// 默认的 KEY 与 iv 如果没有给const KEY = CryptoJS.enc.Utf8.parse("12345678901234567890");const IV = CryptoJS.enc.Utf8.parse('12345678901234567890');/** * AES加密 :字符串 key iv 返回base64 */export const Encrypt = (word, keyStr, ivStr) => { let key = KEY; let iv = IV; if (keyStr) { key = CryptoJS.enc.Utf8.parse(keyStr); iv = CryptoJS.enc.Utf8.parse(ivStr); } let srcs = CryptoJS.enc.Utf8.parse(word); var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }); return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);}/** * AES 解密 :字符串 key iv 返回base64 * * @return {string} */export const Decrypt = (word, keyStr, ivStr) => { let key = KEY; let iv = IV; if (keyStr) { key = CryptoJS.enc.Utf8.parse(keyStr); iv = CryptoJS.enc.Utf8.parse(ivStr); } let base64 = CryptoJS.enc.Base64.parse(word); let src = CryptoJS.enc.Base64.stringify(base64); let decrypt = CryptoJS.AES.decrypt(src, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }); let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); return decryptedStr.toString();}/** * 二次拼接:加密前解密后对密码二次处理,增加字符串常量 * * @return {string} */ export const passwordAddStr = 'testAdd'使用—加密import {Encrypt, passwordAddStr} from '@/util/Crypto.js'let password = '123123qwe' + passwordAddStrpassword = Encrypt(password)使用—解密import {Decrypt, passwordAddStr} from '@/util/Crypto.js'let passwordpassword = Decrypt(password).replace(passwordAddStr, '')SM2使用安装依赖npm install sm-crypto新建utils/Crypto.js文件/** * txt:要加密的字段 * * @return {string} */const sm2 = require('sm-crypto').sm2export const encrypt = (txt) => { const cipherMode = 1 ;// 1 - C1C3C2,0 - C1C2C3,默认为1 const publicKey = "秘钥" // 一般由后端定义 let encryptData = sm2.doEncrypt(txt, publicKey, cipherMode ) // 加密结果 return '04' + encryptData}使用—加密import {encrypt} from '@/util/Crypto.js'let password = '1234'password = encrypt(password)使用—解密由后端解密SM3使用安装依赖npm install sm-crypto新建utils/Crypto.js文件/** * txt:要加密的字段 * * @return {string} */const sm3 = require('sm-crypto').sm3export const encrypt = (txt) => { let encryptData = sm3(txt) // 加密结果 return encryptData}使用—加密import {encrypt} from '@/util/Crypto.js'let password = '1234'password = encrypt(password)使用—解密不可解密sm4使用安装依赖npm install sm-crypto新建utils/Crypto.js文件/** * txt:要加密的字段 * key:秘钥 * * @return {string} */const sm4 = require('sm-crypto').sm4export const encrypt = (txt, key) => { let encryptData = sm4.encrypt(txt, key) // 加密结果 return encryptData}使用—加密import {encrypt} from '@/util/Crypto.js'let password = '1234'password = encrypt(password)
本文链接地址:https://www.jiuchutong.com/zhishi/297433.html 转载请保留说明!

上一篇:保姆级Gmapping算法介绍到复现(保姆分为哪些级别)

下一篇:路径规划 | 图解D* Lite算法(附ROS C++/Python/Matlab仿真)(路径规划步骤)

  • 递延所得税资产会计处理全过程
  • 出口退税申报的发票无电子信息是什么意思
  • 税收分类编码怎么导出来
  • 外币借款本金的汇兑差额
  • 反写不了是为什么
  • 工资走公账和私账哪个好
  • 固定资产清理净损失计入什么科目
  • 其他项目工会筹备金怎么报税
  • 有限合伙企业应当
  • 民办非企业单位是私立还是公立
  • 过桥过路费为什么这么贵
  • 外地建筑工程开票流程
  • 固定资产加速折旧税收优惠政策
  • 与收益相关政府补助区分总额法净额法吗
  • 增值税专用发票可以开电子发票吗
  • 所得税预缴申报表
  • 增值税留抵税额抵减欠税
  • 增值税2017年起征点
  • 高温气温
  • 小规模纳税人不用交增值税吗
  • 企业出租收入增值税税率
  • 什么时候抵扣增值税
  • 建筑企业结转成本依据准则
  • 王者荣耀电脑版叫啥名字
  • windows11启动卡在转圈圈
  • 跨月冲红发票需收回原发票
  • 非流动资产基金是什么意思
  • 小规模纳税人无票收入免税吗
  • 结转工程成本属于什么会计科目
  • 往来款作为投资款的影响
  • PHP:pg_prepare()的用法_PostgreSQL函数
  • 土地增值税的收费标准
  • 代开发票所需的资料?
  • zend framework手册
  • anaconda下的python
  • python编程爱心形状
  • 汽车检测没过收钱不
  • 小规模场地租赁费税率是1还是5
  • 简单html代码
  • cookie与session的作用和原理
  • 大前端技术
  • cd相关命令
  • php使用ajax
  • php+vue
  • 员工预支款计入什么科目
  • html获取php数据
  • 代垫运费增值税计入销项税额吗
  • 非成品油发票为什么不能抵扣
  • 退回以前年度的增值税账务处理
  • 普通发票不满8项怎么开明细
  • 筹建期间发生的开办费用
  • 应收账款的账务改为公司招待费用怎么做会计分录
  • 劳务公司是怎么运作的
  • Windows下PostgreSQL安装图解
  • 十个提高情商的方法
  • 购买房屋缴纳的契税可以退税政策
  • 公司为职工承担社保费用
  • 质保金怎么做账
  • 应收票据的核算范围包括
  • 小企业购进商品怎么入账
  • 其他应付款在借方是代表公司欠人家钱吗
  • 借用别的公司资质的协议范本
  • 两家公司
  • freebsd使用手册
  • win7怎么退出域环境
  • windows7的任务管理器在哪
  • linux init.h
  • 进入linux命令行
  • 批处理注册reg文件
  • unity4.5.3f3 和 Android的通信
  • 开通局域网共享工具
  • 三消游戏在线
  • javascript delete 使用示例代码
  • xml-js
  • EasyTouch Broadcast messages选项在js和c#下的用法
  • 欢迎使用来电提醒业务是什么意思
  • 使用粗盐热敷十大危害
  • 家政公司的清洁工具
  • 国家税务总局2016年17号公告
  • 建筑公司材料发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设