位置: 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好友功能不见了)

  • 发微信空格怎么打(微信空格键发送怎么设置)

    发微信空格怎么打(微信空格键发送怎么设置)

  • 硬盘突然未初始化(硬盘未初始化怎么解决)

    硬盘突然未初始化(硬盘未初始化怎么解决)

  • 苹果官网为什么发货这么慢(苹果官网为什么比京东贵那么多)

    苹果官网为什么发货这么慢(苹果官网为什么比京东贵那么多)

  • 微信怎么不让别人拉我进群(微信怎么不让别人加我为好友)

    微信怎么不让别人拉我进群(微信怎么不让别人加我为好友)

  • 腾讯课堂回看有记录吗(腾讯课堂看回放老师有记录吗)

    腾讯课堂回看有记录吗(腾讯课堂看回放老师有记录吗)

  • 斗鱼直播需要什么设备(斗鱼直播需要什么条件才能开)

    斗鱼直播需要什么设备(斗鱼直播需要什么条件才能开)

  • excel中ref是什么意思(在excel中ref是什么意思)

    excel中ref是什么意思(在excel中ref是什么意思)

  • 被邀请共享相册自己的照片能被看到吗(被邀请共享相册拒绝了还会共享吗)

    被邀请共享相册自己的照片能被看到吗(被邀请共享相册拒绝了还会共享吗)

  • 微信拉黑期间发的内容恢复后能看到吗(微信拉黑期间发的消息)

    微信拉黑期间发的内容恢复后能看到吗(微信拉黑期间发的消息)

  • outlook邮箱打不开一直在加载(outlook2007邮箱打不开)

    outlook邮箱打不开一直在加载(outlook2007邮箱打不开)

  • 华硕主板关机后usb不断电(华硕主板关机后usb还在供电)

    华硕主板关机后usb不断电(华硕主板关机后usb还在供电)

  • 呼叫转移对方知道吗(呼叫转移对方知道我打电话吗)

    呼叫转移对方知道吗(呼叫转移对方知道我打电话吗)

  • 外部储存空间读写异常(外部储存空间读写异常怎么恢复)

    外部储存空间读写异常(外部储存空间读写异常怎么恢复)

  • qq把人删了聊天记录还在吗(qq把人删了聊天记录多久会消失)

    qq把人删了聊天记录还在吗(qq把人删了聊天记录多久会消失)

  • 淘宝退款现金红包会退吗(淘宝退款现金红包能退吗)

    淘宝退款现金红包会退吗(淘宝退款现金红包能退吗)

  • iphone11怎么关闭屏幕自动旋转(iphone11怎么关闭非原装电池通知)

    iphone11怎么关闭屏幕自动旋转(iphone11怎么关闭非原装电池通知)

  • 激萌怎么拼相册里的图(激萌怎么拼相册里已有的照片)

    激萌怎么拼相册里的图(激萌怎么拼相册里已有的照片)

  • 移动魔百盒怎么看卫视(移动魔百盒怎么恢复出厂设置)

    移动魔百盒怎么看卫视(移动魔百盒怎么恢复出厂设置)

  • 如何用美图秀秀添加魔幻效果(如何用美图秀秀把两张图片合成一张)

    如何用美图秀秀添加魔幻效果(如何用美图秀秀把两张图片合成一张)

  • iphone自带提取文字(iphone12自带提取文字)

    iphone自带提取文字(iphone12自带提取文字)

  • 陆家嘴金融贸易区,中国上海 (© Jackal Pan/Getty Images)(陆家嘴金融贸易区管委会主任)

    陆家嘴金融贸易区,中国上海 (© Jackal Pan/Getty Images)(陆家嘴金融贸易区管委会主任)

  • Axios发送请求的方法(axios发送多个请求)

    Axios发送请求的方法(axios发送多个请求)

  • xlsclients命令  列出应用程序(excel&命令)

    xlsclients命令 列出应用程序(excel&命令)

  • 应交增值税一般纳税人的账怎么做
  • 电子税务局怎么查进项发票明细
  • 个人所得税如何入账?
  • 会计没签字出纳付款违法么
  • 应付职工薪酬会产生暂时性差异吗
  • 企业合并的会计方法选择
  • 个人股权转让协议书范本合同
  • 个人所得税已申报税额合计是什么意思
  • 没有ca证书怎么连接wifi加密设备
  • 诉讼费走哪个会计科目
  • 未使用的固定资产提不提折旧
  • 2014年税收征管体制改革
  • 建设厂房需要几个证
  • 限额领料单属于什么原始凭证
  • 租赁公司怎么开展业务
  • 小规模企业如何
  • 固定资产报废税费怎么处理
  • 公司年末补缴企业所得税需要提供什么资料?
  • 增值税和消费税的区别和联系
  • 2016年的发票2020年可以认证吗
  • 企业所得税汇算清缴申报表
  • 增值税电子普通发票开具规定
  • 开票资料中没有电话可以吗
  • 宣传活动物资
  • 新注册公司什么时候报个税
  • 职工养老金怎么交费
  • 担保贷款造成的损失可以税前扣除吗?
  • win10电脑输入法不见了怎么恢复
  • win8操作系统
  • mac菜单键怎么设置出来的
  • 小规模企业没有成本票怎么办
  • 营业外收支计算公式
  • PHP:imagecolorresolvealpha()的用法_GD库图像处理函数
  • zend框架教程
  • 制造业企业资金如何循环周转
  • 如何利用数据有效性制作单元格菜单
  • 稽查增值税跨年了销项税额如何转出
  • 税收罚款支出计入其他应付款吗对吗
  • 备抵法账务处理方式
  • 资产负债表中的货币资金怎么算
  • 保险业务手续费
  • 生产成本设置二级科目
  • 直接人工成本的计算公式
  • 纳税申报表上的销售额是不含税的吗
  • mysql数据库排序
  • 税前弥补以前年度亏损对递延所得税影响
  • 企业筹办期怎么做账最合理
  • 库存商品转成本意味着什么
  • 增量留抵税额退税的计算公式为
  • 其他应付款是什么类账户
  • 开具发票的原则有哪些呢?
  • 生产企业购进的生产原材料用来装修公司会计处理
  • 固定资产拆除怎么处理
  • 暂估成本以后也没有票回来了
  • 企业会计准则下职工薪酬核算的困难与对策研究
  • 外资企业股权转让给内资企业流程
  • 差旅费用包含哪些
  • 债权资产包括哪些科目内容
  • 随同产品销售不单独计价包装物如何进行账务处理?
  • 回购股票注销股票怎么办
  • 购进生产设备的进项税额抵扣政策
  • 公司购买垃圾袋可以抵扣吗
  • solaris挂载硬盘
  • 使用u盘安装windows10电脑识别不出来
  • win7系统玩游戏
  • 一岁的宝宝可以喝枸杞水吗
  • win8系统怎么设置
  • 快速锁定单元格的方法
  • win8系统如何连接wifi
  • linux内核架构
  • win10 64位系统提示0x80070643错误代码的解决方法
  • Win7摄像头驱动程序
  • javascript开发自学
  • android面试题网站
  • 电子税务局报表报送在哪里
  • 个体户增值税怎么计算方法
  • 开普票需要提供合同吗
  • 外贸公司销售额可以10亿以上吗
  • 南京税务局举报
  • 北京地税app
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设