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

  • ilife扫地机器人评测(ilife 11)(ilife扫地机器人售后服务电话)

    ilife扫地机器人评测(ilife 11)(ilife扫地机器人售后服务电话)

  • 苹果手机怎么设置夜间模式(苹果手机怎么设置铃声来电铃声)

    苹果手机怎么设置夜间模式(苹果手机怎么设置铃声来电铃声)

  • 苹果11放歌听筒滋滋响是怎么回事(苹果11放歌听筒和扬声器一起响,怎么设置)

    苹果11放歌听筒滋滋响是怎么回事(苹果11放歌听筒和扬声器一起响,怎么设置)

  • vivoai键的用处(vivo ai键)

    vivoai键的用处(vivo ai键)

  • 该商户仅支持150元以内的花呗订单(该商户仅支持150以内)

    该商户仅支持150元以内的花呗订单(该商户仅支持150以内)

  • 苹果充电器一面充电一面不充(苹果原装充电器)

    苹果充电器一面充电一面不充(苹果原装充电器)

  • 小米笔记本numlock键在哪(小米笔记本numlock键)

    小米笔记本numlock键在哪(小米笔记本numlock键)

  • 电脑一直说有问题重启(电脑老是提示有问题需要重启)

    电脑一直说有问题重启(电脑老是提示有问题需要重启)

  • 酷狗音乐vip过期了下载的歌还能听吗(酷狗音乐vip过期了下载到耳机的歌)

    酷狗音乐vip过期了下载的歌还能听吗(酷狗音乐vip过期了下载到耳机的歌)

  • 删除朋友圈评论对方知道吗(三个人是微信好友有一方删除朋友圈评论)

    删除朋友圈评论对方知道吗(三个人是微信好友有一方删除朋友圈评论)

  • 苹果xs屏幕发黄正常吗(苹果xs屏幕发黄怎么办)

    苹果xs屏幕发黄正常吗(苹果xs屏幕发黄怎么办)

  • 微信辅助注册不符合资格是什么原因(微信辅助注册不成功)

    微信辅助注册不符合资格是什么原因(微信辅助注册不成功)

  • 魅族17有没有耳机孔(魅族17有没有耳机)

    魅族17有没有耳机孔(魅族17有没有耳机)

  • 抖音账号永久封禁怎么解开(抖音账号永久封禁多久能恢复正常)

    抖音账号永久封禁怎么解开(抖音账号永久封禁多久能恢复正常)

  • 继承与多态的区别(什么是继承和多态,请举个例子说明继承和多态)

    继承与多态的区别(什么是继承和多态,请举个例子说明继承和多态)

  • 京东自营店和非自营店有什么区别(京东自营店和非自营店哪个更有保障?)

    京东自营店和非自营店有什么区别(京东自营店和非自营店哪个更有保障?)

  • 天猫以旧换新是给现金吗(天猫以旧换新是到付吗)

    天猫以旧换新是给现金吗(天猫以旧换新是到付吗)

  • 退群后自己信息还在吗(退群后原先发的信息是不是没了)

    退群后自己信息还在吗(退群后原先发的信息是不是没了)

  • vivo手机任务栏在哪里(vivo手机任务栏在哪)

    vivo手机任务栏在哪里(vivo手机任务栏在哪)

  • vivox27怎么面部解锁(vivox27怎么设置面部识别)

    vivox27怎么面部解锁(vivox27怎么设置面部识别)

  • 苹果airpods能关机吗(关掉airpods)

    苹果airpods能关机吗(关掉airpods)

  • wetool怎么加人(wetool怎么加群)

    wetool怎么加人(wetool怎么加群)

  • huaweiMate 20的屏占比(华为mate20的屏幕供应商)

    huaweiMate 20的屏占比(华为mate20的屏幕供应商)

  • 苹果电池维修什么意思(苹果电池维修是什么)

    苹果电池维修什么意思(苹果电池维修是什么)

  • iphonexr有没有3dtouch

    iphonexr有没有3dtouch

  • 苹果6被id密码锁了怎么办(苹果6解锁id)

    苹果6被id密码锁了怎么办(苹果6解锁id)

  • js构造函数模式是什么(js构造函数怎么用)

    js构造函数模式是什么(js构造函数怎么用)

  • 税控盘280怎么变398了
  • 小规模纳税人附加税是几个点
  • 跨年增值税专用发票没有认证,需要开红字信息表吗
  • 同一法人的两家企业可以以同一投标人身份投标吗
  • 进口环节增值税是中央税还是地方税
  • 税法关于发票丢失的
  • 软件出口税收政策
  • 发生销售退回如何开票
  • 增值税普通发票需要交税吗
  • 过路费发票可以抵扣增值税吗
  • 车辆商业险和交强险可以分开买吗
  • 用友薪资管理怎么重新初始化步骤
  • 每月计提折旧
  • 异地仓储概述
  • 房屋大修理费用指哪些
  • 化妆品的消费税率多少
  • 支付知识产权服务费账务处理
  • 预缴增值税的情况四种情形汇总表怎么填
  • Windows server 2008设置远程桌面连接的详细步骤(图文教程)
  • 商业健康保险税优码
  • 华为鸿蒙怎么打开5g
  • 生产车间设备检测费计入什么科目
  • 公司购入汽车可以算做注册资本吗
  • 分级核算下的建议有哪些
  • 其他应付款不用付了怎么处理
  • 企业向银行贷款要交印花税吗
  • vue3获取当前vue实例
  • Vue Grid Layout -️ 适用Vue.js的栅格布局系统(保姆级使用教程)
  • 企业盈利结转本年利润分录
  • 正则表达式大全(整理版)
  • python雪花算法生成id
  • 装修费还没摊销完就搬家了
  • 准确率精确率
  • 前端都有哪些
  • 取得短期借款会计分录
  • 帝国cms安装教程
  • 入库税款异常是啥意思
  • 第二季度企业所得税会减第一季度吗
  • 关税完税价格计算增值税
  • 其他综合收益涉及到的业务
  • python 动态
  • 资产负债表中利息收入填在哪
  • 清算机构收单机构和发卡行
  • sql2008用户sa登录失败
  • 企业内部交易如何操作
  • 雇用残疾人税收优惠
  • 补交以前年度的城建税会计分录
  • 计提折旧会计分录怎么做
  • 路桥费能抵扣增值税吗
  • 经营杠杆系数的推导
  • 企业发生的各项罚款收入应计入
  • 预收货款转营业外收入
  • 2020年专项扣除怎么填
  • a公司刚刚执行了一个采购项目
  • win8更改系统字体
  • bios设置的完整说法
  • 笔怎么画最好看
  • 如何重装系统win7具体步骤
  • win8的开机启动项在哪里
  • keyworker什么意思
  • winxp家庭版和专业版的区别
  • centos6基础命令
  • incredr
  • win8系统开机启动项怎么设置
  • linux如何更改默认的运行级别
  • linux page buffer cache深入理解
  • windows10不能在任务栏进行的操作
  • win8.1无法更新
  • python图像移动
  • perl tr函数
  • (cocs2dx)二、 利用Eclipse编译apk应用
  • gimp批处理
  • 完美世界打斗
  • 手把手教你打造班级主题环境 培训后心得
  • 堆实现栈
  • Javascript Object.extend
  • 房产契税退税在哪里办理
  • 西安大修基金和契税怎么计算
  • 超市一般纳税人做账流程
  • 实名办税人员承诺书范本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设