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

  • 他通过几个月学会了移动营销 只因知道这3点(通过几个月的努力取得了明显的成绩修改病句)

    他通过几个月学会了移动营销 只因知道这3点(通过几个月的努力取得了明显的成绩修改病句)

  • 支付宝会员自动续费怎么关闭(支付宝会员自动扣款怎么取消)

    支付宝会员自动续费怎么关闭(支付宝会员自动扣款怎么取消)

  • iphone11怎么进行分屏操作(iphone11怎么进行照片分类)

    iphone11怎么进行分屏操作(iphone11怎么进行照片分类)

  • 文件太大怎么变小(文件太大怎么变小一点)

    文件太大怎么变小(文件太大怎么变小一点)

  • 微信视频怎么下载到手机(微信视频怎么下载到本地视频)

    微信视频怎么下载到手机(微信视频怎么下载到本地视频)

  • ipad怎么贴膜钢化膜(ipad怎么贴膜钢化膜没有气泡)

    ipad怎么贴膜钢化膜(ipad怎么贴膜钢化膜没有气泡)

  • 佳能相机充电(佳能相机充电器怎么看充满了)

    佳能相机充电(佳能相机充电器怎么看充满了)

  • 华为手表黑屏处理方法(华为手表 黑屏)

    华为手表黑屏处理方法(华为手表 黑屏)

  • 微信定时发红包设置(微信定时发红包给指定好友)

    微信定时发红包设置(微信定时发红包给指定好友)

  • qq音乐关注的人在哪里(qq音乐关注的人评论有提示)

    qq音乐关注的人在哪里(qq音乐关注的人评论有提示)

  • 京东买了东西不想要了怎么办(京东买了东西不发货怎么办)

    京东买了东西不想要了怎么办(京东买了东西不发货怎么办)

  • 电脑上什么都没有了怎么回事(电脑上啥也没有咋办)

    电脑上什么都没有了怎么回事(电脑上啥也没有咋办)

  • 拼多多好友列表在哪里(拼多多好友列表怎么删除)

    拼多多好友列表在哪里(拼多多好友列表怎么删除)

  • 手机电池温度45度正常吗(手机电池温度45度)

    手机电池温度45度正常吗(手机电池温度45度)

  • vivo手机只显示图标开不开机(vivo手机只显示未接电话不显示已接电话)

    vivo手机只显示图标开不开机(vivo手机只显示未接电话不显示已接电话)

  • 华为手机微信不计步(华为手机微信不在桌面怎么找出来)

    华为手机微信不计步(华为手机微信不在桌面怎么找出来)

  • word文档表格线条怎么加粗(word文档表格线对不齐)

    word文档表格线条怎么加粗(word文档表格线对不齐)

  • 微信群邀请几小时过期(微信邀请群时效是多久)

    微信群邀请几小时过期(微信邀请群时效是多久)

  • iphone11pro和11promax区别(iphone11pro和11promax外放)

    iphone11pro和11promax区别(iphone11pro和11promax外放)

  • word2010的替换功能在(word2010的替换功能所在的选项卡是)

    word2010的替换功能在(word2010的替换功能所在的选项卡是)

  • 手机怎么查询征信(手机怎么查询征兵报名结果)

    手机怎么查询征信(手机怎么查询征兵报名结果)

  • 微信怎样开启刷脸支付(微信怎样开启刷卡支付)

    微信怎样开启刷脸支付(微信怎样开启刷卡支付)

  • 手机网速慢怎么解决(手机网速慢怎么解决华为)

    手机网速慢怎么解决(手机网速慢怎么解决华为)

  • 投影仪一连上电脑就黑屏(投影仪连接不久就会自动断开)

    投影仪一连上电脑就黑屏(投影仪连接不久就会自动断开)

  • 华为智能遥控不见了(华为智能遥控不小心删了怎么找回)

    华为智能遥控不见了(华为智能遥控不小心删了怎么找回)

  • qq扩列群介绍怎么写(qq扩列群起什么名字)

    qq扩列群介绍怎么写(qq扩列群起什么名字)

  • 荣耀平板5和华为m5区别(荣耀平板5和华为m3哪个好)

    荣耀平板5和华为m5区别(荣耀平板5和华为m3哪个好)

  • 微信时间错乱如何恢复(微信时间错乱 改不回来)

    微信时间错乱如何恢复(微信时间错乱 改不回来)

  • 手机要不要开启hd

    手机要不要开启hd

  • 小规模开票超过五百万元,会自动升为一般纳税人吗
  • 消费税入哪个科目
  • 疫情期间固定资产折旧优惠政策
  • 自产用于捐赠的会计处理
  • 购入交通运输设备计入什么科目
  • 个体户超过定额怎么纳税申报
  • 差额增税可以抵扣吗
  • 员工可以签订两份劳动合同吗
  • 一般纳税人收到普票需要价税分离吗
  • 2019年1月份到现在几个月了
  • 出售库存的原材料表格
  • 税款返点如何做财务处理呢?
  • 房地产企业老项目增值税
  • 如何算清楚公司的账
  • 公司注销后虚开发票
  • 印花税为什么不计入资产成本
  • 小规模纳税人实行简易征收办法
  • 2019年水利部
  • 公司认缴增资需要什么流程呢
  • 打官司收案是什么意思
  • 上月留抵进项抵扣分录
  • 起诉销售
  • 汽车租赁公司产品服务
  • 征信费用会计分录
  • 收到采购商品
  • win11如何安装安卓app
  • 水土保持补偿费收费依据
  • 电脑右下角弹出网页没有×怎么关闭
  • 虚拟机安装apache
  • 如何开启系统自带杀毒软件
  • 非货币性资产交换以公允价值为基础进行计量
  • 运输发票税金怎么算
  • 补发工资怎么做账
  • apache去掉php后缀
  • 公司制作横幅计入什么科目?
  • php file_get_contents smb
  • 配置多数据源的好处
  • php生成随机6位数
  • 关于laravel应用中的各个目录的作用,说法错误的是
  • 销售赔偿款增值税和所得税
  • 手把手教你用荣耀手机
  • 异地项目需要预缴增值税吗
  • 宝塔怎么搭建
  • sql2014附加数据库失败
  • 公司购入车辆的增值税怎么算
  • 债权投资利息收入调增还是调减
  • 附加税减免额怎么算
  • 未确认融资费用借贷方向
  • 银行承兑汇票背书转让会计分录
  • 开发成本期末有余额吗
  • 发票与销售小票有什么区别?
  • 融资租入固定资产的改建支出
  • 材料成本差异率是什么意思
  • 其他公司借款现金怎么办
  • 对公账户的流程
  • 预付账款有余额吗
  • 待结算财政款项是什么科目
  • 管理费用是负数影响利润表吗
  • 新办企业必须经过什么核准登记
  • 利润分配的借方表示增加还是减少
  • sql server 2008教程
  • win7和winxp区别
  • windows xp怎么打开
  • Mac OS X 10.9 Mavericks系统怎么激活?
  • Win7 64位系统声卡重装过程中出现失败的解决方法
  • linux创建个人主页
  • windos8怎么样
  • pascl32.exe - pascl32是什么进程 有什么用
  • Win10 Mobile 10586.36预览版怎么更新?
  • win10激活界面打不开
  • select类中下拉框选择常见的方法
  • node的express
  • linux bash脚本
  • 两个Collider遮挡的解决办法
  • javascriptz
  • javascript tr
  • 23种设计模式全解
  • 同业借款的主要用途
  • 请问地税是省直单位吗
  • 郑州房子契税退税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设