位置: 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仿真)(路径规划步骤)

  • 苹果手机apn怎么设置(苹果手机apn怎么打开)

    苹果手机apn怎么设置(苹果手机apn怎么打开)

  • 抖音上屏幕飘字的设置方法是什么(抖音飘字怎么去掉)

    抖音上屏幕飘字的设置方法是什么(抖音飘字怎么去掉)

  • 微信把好友删了对方知道吗(微信把好友删了怎么偷偷加回来)

    微信把好友删了对方知道吗(微信把好友删了怎么偷偷加回来)

  • 有没有能解决华为手机耗电快的问题(有没有能解决华为的软件)

    有没有能解决华为手机耗电快的问题(有没有能解决华为的软件)

  • jpeg是用于什么的编码标准(jpeg是用于什么文件的储存)

    jpeg是用于什么的编码标准(jpeg是用于什么文件的储存)

  • 抖音我的pid是什么意思(抖音pid绑定是什么意思)

    抖音我的pid是什么意思(抖音pid绑定是什么意思)

  • 老年机怎么恢复出厂设置(老年机怎么恢复中文)

    老年机怎么恢复出厂设置(老年机怎么恢复中文)

  • b站换不了头像怎么办(b站app换不了头像)

    b站换不了头像怎么办(b站app换不了头像)

  • 微信聊天记录能一下全选吗(微信聊天记录能存留多久)

    微信聊天记录能一下全选吗(微信聊天记录能存留多久)

  • 微光显示设备异常是什么意思(微光显示设备异常请重试)

    微光显示设备异常是什么意思(微光显示设备异常请重试)

  • 荣耀20怎么卸载应用(荣耀20怎么卸载华为视频)

    荣耀20怎么卸载应用(荣耀20怎么卸载华为视频)

  • 输入信号超出范围怎么解决(输入信号超出范围怎么解决黑屏)

    输入信号超出范围怎么解决(输入信号超出范围怎么解决黑屏)

  • 原件扫描件是什么意思(原件扫描件是什么颜色)

    原件扫描件是什么意思(原件扫描件是什么颜色)

  • realtek audio driver是什么软件(realtek audio driver能卸载吗)

    realtek audio driver是什么软件(realtek audio driver能卸载吗)

  • 抖音的小时榜是什么意思(抖音小时榜是怎么计算的)

    抖音的小时榜是什么意思(抖音小时榜是怎么计算的)

  • 什么是动态命令标签(动态命令怎么显示不了)

    什么是动态命令标签(动态命令怎么显示不了)

  • 华为mate30pro原厂膜要撕吗(华为mate30pro原厂充电器型号)

    华为mate30pro原厂膜要撕吗(华为mate30pro原厂充电器型号)

  • 华为nova5一键锁屏在哪(nova5i一键锁屏)

    华为nova5一键锁屏在哪(nova5i一键锁屏)

  • vivox21快充怎么设置(vivox21快充怎么开启功能在哪里)

    vivox21快充怎么设置(vivox21快充怎么开启功能在哪里)

  • webrtc是什么(webrtc rtc)

    webrtc是什么(webrtc rtc)

  • win10本地连接不见了(win10本地连接连不上)

    win10本地连接不见了(win10本地连接连不上)

  • 芒果tv咋取消手机绑定(芒果tv怎么关闭绑定手机号)

    芒果tv咋取消手机绑定(芒果tv怎么关闭绑定手机号)

  • 微信视频为什么老是连接中(微信视频为什么会横过来)

    微信视频为什么老是连接中(微信视频为什么会横过来)

  • 个人简历html网页代码(使用chatgpt完成web开发课的实验)(个人简历html网页代码含效果图)

    个人简历html网页代码(使用chatgpt完成web开发课的实验)(个人简历html网页代码含效果图)

  • openAI api 生产最佳实践(open api平台)

    openAI api 生产最佳实践(open api平台)

  • 租赁设备损毁赔偿案例
  • 股权收购收购方支付的期间损益计入
  • 现金流量净额正负
  • 发票金额多开了有事吗
  • 无形资产升值怎么处理
  • 高新技术企业预审要求
  • 公司注销时发现很多年前多发了员工的工资
  • 凭证单据的整理
  • 增值税专用发票可以开电子发票吗
  • 17增值税发票怎么计算
  • 小规模增值税怎么做账
  • 坏账准备的计提是什么意思
  • 归还银行贷款利息分录
  • 企业转让无形资产要交增值税吗
  • 房地产中介公司排名
  • 出差补贴怎么算
  • 房地产企业收到房款账务处理
  • 拆迁的支出费用包括哪些
  • 农民工劳动报酬权救济制度存在的问题
  • vue使用方法
  • 电脑病毒的特点包括
  • windows10如何开启wifi
  • 大沙丘国家公园在哪里
  • php实现断点续传
  • 基本工程建设项目清单
  • 点云目标检测数据集
  • 国内来料加工委托方需要报关吗
  • 短期投资计入什么科目
  • 带息应收票据应于收到或开出或承兑时
  • 估价入库金额怎么来
  • 有关预收账款的会计科目
  • deepwiser怎么用
  • 太原市插画工作室
  • 期初金额和期末金额怎么算
  • 网络安全网络文明
  • linux rdp客户端
  • 做账计提是什么意思
  • 企业发生的直接进入当期损益的期间费用包括
  • 运输行业一般纳税人开普票税率是多少
  • mongodb数据库语句
  • 劳务费发票可以抵扣吗?
  • 个人承担社保有哪些
  • 成本类账户期末如有余额在借方
  • 公司注销后应收账款转给个人
  • 企业购置生产要素所引起的本钱炜
  • 影视公司临时演员怎么办
  • 研发部门房租计入研发费吗
  • 记帐凭证的填制方法
  • 小规模纳税人变更一般纳税人条件
  • 生产成本和主营业务成本金额一样吗
  • 什么是个人独资企业营业执照
  • 没有期初数据会怎么样
  • 备查账簿有没有固定的格式
  • sql语句常用语句
  • win10一年更新一次
  • windows xp系
  • 深度操作系统中的生活服务类软件有
  • .exe是什么软件
  • 安装windows7所需的条件
  • osx安装win10
  • win7系统还能用不
  • vista starter
  • shader开发实战
  • opengl绘制点线面
  • 批处理的应用
  • Node.js中的全局对象有
  • 深入理解中国式现代化
  • 使用jquery实现的项目
  • ubuntu on android
  • android studio代码写在哪
  • 安卓模拟器错误怎么办
  • 如何使用定向流量
  • 如何利用python写爬虫
  • comparable接口怎么用
  • 税务官网怎么登录账号
  • 国地税合并人员瘦身
  • 设计服务税收分类编码
  • 房产税季度缴纳还是月度
  • 教育用地性质可以更改么
  • 财税65号第一条
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设