位置: IT常识 - 正文

前端国密加解密使用方法SM2、SM3、SM4(前端密码加密)

编辑:rootadmin
前端国密加解密使用方法SM2、SM3、SM4

推荐整理分享前端国密加解密使用方法SM2、SM3、SM4(前端密码加密),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:前端加密后端解密过程,前端 加密,密码前端加密后端解密,前端国密加解密怎么设置,前端数据加密解密,前端 加密,密码前端加密后端解密,前端数据加密解密,内容如对您有帮助,希望把文章链接给更多的朋友!

   国密算法,即国家商用密码算法。是由国家密码管理局认定和公布的密码算法标准及其应用规范,其中部分密码算法已经成为国际标准。如SM系列密码,SM代表商密,即商业密码,是指用于商业的、不涉及国家秘密的密码技术。

     不多废话直接上干货

 国密SM的安装方法

项目中 可能存在版本问题 用这个降级安装 (后面出现安装问题同理)

npm install --save sm-crypto 或 npm install --save sm-crypto --legacy-peer-deps 1、SM2是非对称加密算法

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

SM2采用的是ECC 256位的一种,其安全强度比RSA 2048位高,且运算速度快于RSA。

    SM2引入使用方法 

const sm2 = require('sm-crypto').sm2const cipherMode = 1 // 1 - C1C3C2,0 - C1C2C3,默认为1 ****后端的话可以约定但后端默认加密方法好像是0 - C1C2C3****在解密时 使用的密钥和密位一般是传输过来的,密文传输得来的话开头会由04 需要删除,同时密钥可能存在必须小写的情况 key.slice(2).toLocaleLowerCase() 可以使用这个方法let encryptData = sm2.doEncrypt(msgString, publicKey, cipherMode) // 加密结果let decryptData = sm2.doDecrypt(encryptData, privateKey, cipherMode) // 解密结果下面的一般特殊情况才会用到encryptData = sm2.doEncrypt(msgArray, publicKey, cipherMode) // 加密结果,输入数组decryptData = sm2.doDecrypt(encryptData, privateKey, cipherMode, {output: 'array'}) // 解密结果,输出数组2、SM3是一种密码杂凑算法(用于数据摘要保证完整性)前端国密加解密使用方法SM2、SM3、SM4(前端密码加密)

  用于替代MD5/SHA-1/SHA-2等国际算法,适用于数字签名和验证、消息认证码的生成与验证以及随机数的生成,可以满足电子认证服务系统等应用需求,于2010年12月17日发布。

它是在SHA-256基础上改进实现的一种算法,采用Merkle-Damgard结构,消息分组长度为512bit,输出的摘要值长度为256bit。

引入使用方法    const sm3 = require('sm-crypto').sm3    this.loginForm = sm3(this.loginForm) //获得摘要后的数据3、SM4是分组加密算法(对称性的加密方法)

  跟SM1类似,是我国自主设计的分组对称密码算法,用于替代DES/AES等国际算法。SM4算法与AES算法具有相同的密钥长度、分组长度,都是128bit。于2012年3月21日发布,适用于密码应用中使用分组密码的需求。加密

const sm4 = require('sm-crypto').sm4const msg = '你好,我是空空.' // 可以为 utf8 串或字节数组const key = 'facca330123456789abcdas3210' // 可以为 16 进制串或字节数组,要求为 128 比特前后端约定一种下面的加密方法let encryptData = sm4.encrypt(msg, key) // 加密,默认输出 16 进制字符串,默认使用 pkcs#7 填充(传 pkcs#5 也会走 pkcs#7 填充) let encryptData = sm4.encrypt(msg, key, {padding: 'none'}) // 加密,不使用 paddinglet encryptData = sm4.encrypt(msg, key, {padding: 'none', output: 'array'}) // 加密,不使用 padding,输出为字节数组let encryptData = sm4.encrypt(msg, key, {mode: 'cbc', iv: 'fedcba98765432100123456789abcdef'}) // 加密,cbc 模式

解密

const sm4 = require('sm-crypto').sm4const encryptData = '这里放加密后的数据' // 可以为 16 进制串或字节数组const key = 'abcdeffedcba98765432100123456789' // 可以为 16 进制串或字节数组,要求为 128 比特用约定的解密方法解密let decryptData = sm4.decrypt(encryptData, key) // 解密,默认输出 utf8 字符串,默认使用 pkcs#7 填充(传 pkcs#5 也会走 pkcs#7 填充)let decryptData = sm4.decrypt(encryptData, key, {padding: 'none'}) // 解密,不使用 paddinglet decryptData = sm4.decrypt(encryptData, key, {padding: 'none', output: 'array'}) // 解密,不使用 padding,输出为字节数组let decryptData = sm4.decrypt(encryptData, key, {mode: 'cbc', iv: 'fedcba98765432100123456789abcdef'}) // 解密,cbc 模式4.baser64

  一般上述的那些会混合baser64使用 一块提一嘴吧   baser64安装

npm install --save js-base64 npm install --save js-base64  --legacy-peer-deps  

引入方法  在main.js中加入 

import {Base64} from 'js-base64'Vue.prototype.$Base64 = Base64;

使用方法 

 let password='asdahsjdj' let encPass=this.$Base64.encode(password);//加密 let decPass=this.$Base64.decode(encPass);//解密

当初为了找到前端的使用方法,搜的脑子疼,为了配合后端加解密测试脑子更疼了,

使用方法的时候千万要主要 前后端保持加解密密钥格式方法的一致性

附上npm网址 :https://www.npmjs.com/package/sm-crypto?activeTab=explore

本文链接地址:https://www.jiuchutong.com/zhishi/288929.html 转载请保留说明!

上一篇:冬日里的科赫尔湖,德国巴伐利亚州 (© Reinhard Schmid/eStock Photo)

下一篇:黑尾塍鹬,荷兰 (© Edward van Altena/Minden Pictures)(黑尾鮰鱼)

  • 我的QQ群推广方法总结(我的qq群推广方式有哪些)

    我的QQ群推广方法总结(我的qq群推广方式有哪些)

  • 微信公交乘车码在哪里(微信公交乘车码怎么扣费)

    微信公交乘车码在哪里(微信公交乘车码怎么扣费)

  • xp是什么意思(op是什么意思)

    xp是什么意思(op是什么意思)

  • 苹果12pro参数(苹果12pro参数配置)

    苹果12pro参数(苹果12pro参数配置)

  • 华为nova5怎么开不了机(华为nova5怎么开空调遥控器)

    华为nova5怎么开不了机(华为nova5怎么开空调遥控器)

  • x电容和y电容作用(x电容和y电容连接方式)

    x电容和y电容作用(x电容和y电容连接方式)

  • 快手加入MCN有啥用(快手加入mcn机构有什么好处)

    快手加入MCN有啥用(快手加入mcn机构有什么好处)

  • 表格填写身份证号码后面几位显示零(表格填写身份证后4位变成0000)

    表格填写身份证号码后面几位显示零(表格填写身份证后4位变成0000)

  • 微信换绑手机号有什么影响(微信换绑手机号需要原手机号的验证码吗)

    微信换绑手机号有什么影响(微信换绑手机号需要原手机号的验证码吗)

  • 快手金龙能提现吗(快手金龙提现多少钱)

    快手金龙能提现吗(快手金龙提现多少钱)

  • 苹果手机电池老化会出现什么情况(苹果手机电池老化充不进去电怎么办)

    苹果手机电池老化会出现什么情况(苹果手机电池老化充不进去电怎么办)

  • 华为畅享10是屏幕指纹吗(华为畅享10屏幕多大尺寸)

    华为畅享10是屏幕指纹吗(华为畅享10屏幕多大尺寸)

  • 一加七手机是哪家公司的(一加七手机是国产吗)

    一加七手机是哪家公司的(一加七手机是国产吗)

  • 苹果x怎么关闭黑暗模式(苹果x怎么关闭专注模式)

    苹果x怎么关闭黑暗模式(苹果x怎么关闭专注模式)

  • 京东必购码谁收(京东商城的必购码)

    京东必购码谁收(京东商城的必购码)

  • 京东预售和预约有什么区别(京东预售是不是便宜一点)

    京东预售和预约有什么区别(京东预售是不是便宜一点)

  • 苹果11promax是双卡的吗(苹果11pro max是双4g吗)

    苹果11promax是双卡的吗(苹果11pro max是双4g吗)

  • 三星smg9650是哪个版本

    三星smg9650是哪个版本

  • APP开发有哪些弊端(app开发容易吗)

    APP开发有哪些弊端(app开发容易吗)

  • 华为用户体验计划要不要开(华为用户体验计划包名)

    华为用户体验计划要不要开(华为用户体验计划包名)

  • 三星svoice怎么唤醒(三星怎么设置语音唤醒bixby)

    三星svoice怎么唤醒(三星怎么设置语音唤醒bixby)

  • 苹果6适合更新ios12吗(苹果6适合更新ISO15.7.5吗)

    苹果6适合更新ios12吗(苹果6适合更新ISO15.7.5吗)

  • 金立手机补电模式怎么开启(金立手机补电模式是什么)

    金立手机补电模式怎么开启(金立手机补电模式是什么)

  • 美图秀秀在哪里发作品(华为美图秀秀在哪里)

    美图秀秀在哪里发作品(华为美图秀秀在哪里)

  • 新版Edge浏览器开启“全局媒体控件”功能(新版edge浏览器兼容ie)

    新版Edge浏览器开启“全局媒体控件”功能(新版edge浏览器兼容ie)

  • 奥林匹克海岸国家海洋保护区的海岸线,美国华盛顿州 (© Chris Moore/Tandem Stills + Motion)(奥林匹克森林公园奥海)

    奥林匹克海岸国家海洋保护区的海岸线,美国华盛顿州 (© Chris Moore/Tandem Stills + Motion)(奥林匹克森林公园奥海)

  • 个人独资企业生活费用和经营费用混在一起的
  • 小规模纳税人利息收入增值税税率
  • 库存现金账务处理
  • 怎么确定开票项目是否属于经营范围
  • 商品类别发票能抵扣吗
  • 审计报告报备
  • 公司会计制度由小企业会计准则改为企业会计准则怎么做
  • 核定征收可以享受小微企业税收优惠吗
  • 小规模纳税人帮别人报关
  • 抵减税款用递延收入吗
  • 资本化支出加计摊销形成的差异
  • 抵押贷款评估费用标准
  • 居民企业只就其境内全部所得纳税
  • 企业股权无偿划转是否征税
  • 固定资产减值准备增加记哪方
  • 公司报销学费属于 薪酬还是福利呢
  • 年末增值税结转账务处理流程
  • 个税公司承担怎么做账计入其他应收款怎么平账
  • 企业偷税漏税行为诉讼有效期限
  • 房地产预收账款结转到主营业务收入
  • 误工费保险公司全部付吗
  • 应付未付的款项怎么写凭证
  • 企业的不征税收入用于支出所形成的资产
  • 出纳如何审核报销发票
  • 应收票据背书转让以取得所需物资
  • 下列各项支出中,允许用现金支付的有
  • 增值税发票遗失证明模板
  • 冲销应收账款怎么记账
  • 增值税专用发票和普通发票的区别
  • 应用程序错误0x000000
  • php访问统计
  • 劳务费要申报个税吗怎么申报
  • 会计科目在建工程有金额要求吗
  • 进入苹果icloud
  • 铁路运输企业受托代征的印花税款信息
  • 公立医院增值税抵扣
  • 得物的成本结构是什么
  • 大前端入门指南
  • 承租人经营租赁账务处理
  • 小微企业的税收优惠政策2023
  • 现金流量表的编制公式 计算公式
  • 发票盖财务专用章后又盖发票专用章
  • 无偿调入资产如何做账
  • sql中多条件查询
  • sqlserver降级备份
  • mysql安装问题
  • 专票要写开户行和账号
  • 库存现金太多违反什么规定
  • 公司购买股票会计分录怎么做
  • 残疾人就业保障金怎么计算
  • 物业费没收到可以确认收入吗
  • 研发费用加计扣除是什么意思啊
  • 初次购买税控盘480都能抵扣吗
  • 外币报表折算差额名词解释
  • 广告费和广告发布费什么区别
  • 工伤 保险赔付
  • 暂估的进项税额怎么抵扣
  • 2020公司年会奖品清单
  • 股息红利等权益性投资收益
  • 建账初期账务处理程序
  • SQLServer:探讨EXEC与sp_executesql的区别详解
  • system is boot up with
  • windows server 2008 r2安装教程
  • winvnc.exe进程是什么
  • win8.1输入法打不了中文
  • mac菜单栏不见了
  • 虚拟机命令cd
  • 磁盘修复完成以后怎么办
  • Win10预览版拆弹
  • win10正式版激活码
  • unity导出exe文件
  • OpenGL图元管理
  • linux系统中rpm命令主要功能
  • javascript中有哪些数据类型
  • javascript概述及作用
  • Android mediaplayer 网络超时
  • [置顶]马粥街残酷史
  • 国家税务总局全国增值税发票官网
  • 税控盘开票怎么添加新商品
  • 如何查询企业是小规模还是一般
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设