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

  • 国税如何零申报
  • 应交税费明细科目怎么记账
  • 装修行业专票的税率是多少
  • 开发票需要填银行吗
  • 进口货物再出口 增值税处理
  • 房地产涉及的税种和税率
  • 非财政补助结余分配期末有余额吗
  • 专用基金计入什么科目
  • 嵌入式软件产品增值税即征即退
  • 个人转租房屋需交税吗
  • 工企业用地土地使用税怎么征收?
  • 发给一个人的说说
  • 合伙制公司有董事会吗
  • 出口退税附加税什么时候缴纳
  • 苗木增值税发票税率
  • 印花税销售分录
  • 通行费机打发票查询
  • 承包食堂管理费用收取的依据
  • 旅游服务机票款普通发票可以抵扣吗
  • 盈余公积补亏影响资产吗
  • 土地增值税清算后补缴税款如何帐务处理
  • 购买法下购买成本包括
  • 固定资产转无形资产怎么做账
  • 公转私合理吗
  • vc_runtimeMinimum_x64.msi 找不到的解决方法
  • win10设置系统启动
  • 玫瑰小镇的玫瑰有什么用
  • php serialize()与unserialize() 不完全研究
  • wordpress注册界面
  • 蓝莓外面的霜
  • 装修材料如何入账
  • 最小型笔记本
  • 在我国,企业可以用税前利润弥补几年内的损失
  • laravel distinct
  • 银行承兑汇票的付款人是谁?
  • 少数股东权益贷方表示什么意思
  • 办公费抵扣标准
  • 债务重组收入属于什么科目
  • 利息收入怎么做账务处理
  • 金融企业会计科目有哪些
  • 免税的10万元是什么
  • 个体工商户购买生育险有生育津贴吗
  • 累计折旧会影响净残值吗
  • sql2008使用教程
  • server更改密码
  • 外贸出口增值税附表二填哪项
  • 企业利润表表怎么看
  • 金税盘发票二维码怎么生成
  • 购买二手车后
  • 自产产品用于捐赠是否要确认收入
  • 委托加工物资受托发的会计处理
  • 哪些凭证是有效凭证
  • 待处理财产损益的账务处理
  • 无形资产的项目有哪些
  • 软件生产企业培训内容
  • 金蝶凭证做错了已经入账怎么更正
  • 填制凭证出现的问题
  • 盈余公积什么时候会出现在账面
  • 明细分类账的记账
  • my sql命令
  • system is boot up with
  • Win7 64位系统XP模式失效的原因及解决方法
  • linux 解析
  • dockers容器
  • windowxp音频驱动
  • xp系统explorer.exe错误
  • mac中通过python关闭浏览器中的finder弹框
  • win8.1开机进入桌面
  • 信佛是信教吗
  • cocos2d-x引擎
  • jquery 移动端
  • linux命令find用法详解
  • css划动
  • c#7.0新语法
  • 写个置顶
  • javascript XMLHttpRequest对象全面剖析
  • python bilt
  • python3 编码转换
  • 小规模现代服务的税率是多少啊怎么算
  • 河南农村社保查询个人账户查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设