位置: 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)(黑尾鮰鱼)

  • 荣耀play怎么升级鸿蒙系统(荣耀play怎么升级鸿蒙3.0)

    荣耀play怎么升级鸿蒙系统(荣耀play怎么升级鸿蒙3.0)

  • vivo x27输入法设置在哪里(vivo x27如何设置输入法)

    vivo x27输入法设置在哪里(vivo x27如何设置输入法)

  • iphonexr怎么下软件

    iphonexr怎么下软件

  • 通话转接对方知道吗(通话被转接)

    通话转接对方知道吗(通话被转接)

  • mtkp60相当于骁龙多少(mtkp60相当于麒麟多少)

    mtkp60相当于骁龙多少(mtkp60相当于麒麟多少)

  • 手机在线wifi什么意思(手机在线wifi和在线wifi)

    手机在线wifi什么意思(手机在线wifi和在线wifi)

  • 充电宝鼓起来了(充电宝鼓起来了是怎么回事)

    充电宝鼓起来了(充电宝鼓起来了是怎么回事)

  • 手机太烫会出现什么问题(手机太烫会不会烧掉)

    手机太烫会出现什么问题(手机太烫会不会烧掉)

  • 红米k20pro和红米k20pro尊享版有什么区别(红米k20pro和红米10x哪个好)

    红米k20pro和红米k20pro尊享版有什么区别(红米k20pro和红米10x哪个好)

  • 国行资源机什么意思(国行资源机是翻新机吗)

    国行资源机什么意思(国行资源机是翻新机吗)

  • ipad2018支持外置键盘吗(ipad8外设)

    ipad2018支持外置键盘吗(ipad8外设)

  • 华为p30pro小孔是干什么(华为p30手机上的小孔干嘛用的)

    华为p30pro小孔是干什么(华为p30手机上的小孔干嘛用的)

  • 红米note8pro怎么设置手电筒快捷键(红米note8pro怎么恢复出厂设置)

    红米note8pro怎么设置手电筒快捷键(红米note8pro怎么恢复出厂设置)

  • 新媒体是什么(新媒体是什么的产物)

    新媒体是什么(新媒体是什么的产物)

  • 苹果xr可以更新ios13吗(苹果XR可以更新系统吗)

    苹果xr可以更新ios13吗(苹果XR可以更新系统吗)

  • 苹果11pro几个卡槽(iphone11pro双卡)

    苹果11pro几个卡槽(iphone11pro双卡)

  • icloud空间没满却说满(icloud空间没满却说无法备份)

    icloud空间没满却说满(icloud空间没满却说无法备份)

  • 手机微信怎么改年龄(手机微信怎么改签火车票)

    手机微信怎么改年龄(手机微信怎么改签火车票)

  • 如何将苹果手机数据导入华为手机(如何将苹果手机的照片导入电脑)

    如何将苹果手机数据导入华为手机(如何将苹果手机的照片导入电脑)

  • 华为p30pro有无线充电功能吗(华为p30pro有无线充电功能打不开怎么办)

    华为p30pro有无线充电功能吗(华为p30pro有无线充电功能打不开怎么办)

  • 操作系统的基本功能(操作系统的基本概念)

    操作系统的基本功能(操作系统的基本概念)

  • 手机翻译功能在哪里(手机翻译功能在哪里找 视频)

    手机翻译功能在哪里(手机翻译功能在哪里找 视频)

  • 朋友圈不显示某人更新(朋友圈不显示某个好友的朋友圈)

    朋友圈不显示某人更新(朋友圈不显示某个好友的朋友圈)

  • 怎么隐藏Win11菜单栏?win11快速隐藏搜索图标方法(win10怎么隐藏菜单栏图标)

    怎么隐藏Win11菜单栏?win11快速隐藏搜索图标方法(win10怎么隐藏菜单栏图标)

  • 阿德莱德山的葡萄园,澳大利亚 (© Ben Goode/iStock/Getty Images Plus)(阿德莱德 景点)

    阿德莱德山的葡萄园,澳大利亚 (© Ben Goode/iStock/Getty Images Plus)(阿德莱德 景点)

  • 财税通财务软件怎么下载
  • 土地使用税的纳税时间
  • 不良资产处置措施
  • 领发票凭证做什么用
  • 本年已交税费怎么算
  • 淘宝买货没有发票
  • 国有资产报废如何委托拍卖公司
  • 一个公司控股另一个公司
  • 银行多扣钱可以多倍赔偿吗
  • 固定资产税前一次性扣除政策中的扣除十点
  • 增值税扣完税款还能更改吗
  • 每月计提折旧
  • 原材料计划价实际价区别
  • 申报所得税营业税怎么算
  • 折价收购股权会计分录
  • 代收代付给个人
  • 上期留抵税额计算
  • 增值税加计抵减账务处理
  • 资产类账户的期末余额计算公式
  • 不动产增值税发票抵扣
  • 2021年保险营销员
  • 企业开具咨询费的发票
  • 每月固定电话费是半固定成本吗
  • 预付账款供应商类别怎么填
  • 防伪税控发票维修流程
  • bios设置技巧
  • 工商年检填写数据填错了会罚款吗
  • 生产废料怎么处理会计分录
  • 出租的厂房房产税谁交
  • 笔记本电脑保养常识电池
  • 涉税专业服务机构是什么
  • 电脑卡机动不了怎么重启
  • 属于工业企业期间费用的是
  • 法恩达尔的信
  • 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
  • 非货币性资产交换是企业经常发生的
  • 火遍全网的超燃神曲旋律震撼人心,听完热血沸腾!
  • 小程序设计制作
  • php字符串型数据的定义方式
  • 销售退货和折让是收入吗?吗?
  • 劳动仲裁支付的赔偿金怎么入账
  • 固定资产家具用具包括什么
  • 资产减值损失属于营业外支出吗
  • 企业电子发票申请流程2023版
  • 计提固定资产折旧是什么意思
  • 数据库sql语句优化作用是什么
  • 请培训老师的费用怎么处理
  • 小规模纳税人报税
  • 贷款利息收入如何核算
  • 小规模纳税人取得普通发票可以抵扣吗
  • 摘要界面在哪个位置
  • 企业所得税汇算清缴时间
  • 企业计提福利费按多少提
  • 购买二氧化氯
  • 经纪代理代订机票差额专票抵扣
  • 结账后发现期间损益结转的凭证做错
  • 一般纳税人销售使用过的固定资产
  • 需求价格弹性是ep还是ed
  • 企业预算如何编制
  • 原始凭证的会计分录
  • sql server创建架构
  • sql clean
  • linux中的rpm
  • linux系统配置ipv6地址
  • win8.1的ie浏览器
  • win7虚拟内存最大设置多少
  • win8.1核心版密钥
  • 安全配置为0
  • win8 休眠
  • unity固定位置随机生成物体
  • opengl纹理错误变成条纹
  • nodejs全局异常监听
  • 简易最新版本
  • unity3d动态加载资源
  • javascript html5移动端轻松实现文件上传
  • linux多线程编程实例
  • 五十八二
  • 知道税率怎么算成本
  • 镇江市税务局官网
  • 广东省广州市国资委
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设