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

  • 小米10如何开启电量百分比显示(小米10如何开启5gsa模式)

    小米10如何开启电量百分比显示(小米10如何开启5gsa模式)

  • 微信聊天记录图片过期怎么恢复(微信聊天记录图片怎么批量保存)

    微信聊天记录图片过期怎么恢复(微信聊天记录图片怎么批量保存)

  • vivo是什么系统的手机

    vivo是什么系统的手机

  • qq修改作业老师能看到时间吗(qq修改作业老师会看到原始作业吗)

    qq修改作业老师能看到时间吗(qq修改作业老师会看到原始作业吗)

  • 拼多多一次延长收货是多少天(拼多多延长账期是怎么回事)

    拼多多一次延长收货是多少天(拼多多延长账期是怎么回事)

  • 微信声音播放器失败怎么办(微信声音播放器怎么调)

    微信声音播放器失败怎么办(微信声音播放器怎么调)

  • 快速按下并释放鼠标左键的操作称为(快速按下并释放鼠标右的操作称为)

    快速按下并释放鼠标左键的操作称为(快速按下并释放鼠标右的操作称为)

  • 华为怎样分屏使用(华为咋弄分屏)

    华为怎样分屏使用(华为咋弄分屏)

  • mate305g和mate30pro5g区别(mate305g和mate30pro5g价格)

    mate305g和mate30pro5g区别(mate305g和mate30pro5g价格)

  • 携程订票附加费怎么取消(携程订票附加费怎么开票)

    携程订票附加费怎么取消(携程订票附加费怎么开票)

  • 荣耀20怎么清理运行内存(荣耀20怎么清理正在运行程序)

    荣耀20怎么清理运行内存(荣耀20怎么清理正在运行程序)

  • 爱奇艺电影券怎么领取(爱奇艺劵)

    爱奇艺电影券怎么领取(爱奇艺劵)

  • oppoace支持光学防抖吗(oppoace几倍光学变焦)

    oppoace支持光学防抖吗(oppoace几倍光学变焦)

  • 3D打印介绍(3D打印介绍300字作文)

    3D打印介绍(3D打印介绍300字作文)

  • 网络后门的功能是(网络后门的功能是a是吧)

    网络后门的功能是(网络后门的功能是a是吧)

  • 淘宝怎么上传头像(淘宝如何上传)

    淘宝怎么上传头像(淘宝如何上传)

  • r9 s充电没闪充标志(r9s充电指示灯不亮)

    r9 s充电没闪充标志(r9s充电指示灯不亮)

  • ppt怎样自己设计字体(如何自己设计ppt)

    ppt怎样自己设计字体(如何自己设计ppt)

  • vivox27屏幕是什么玻璃(vivox27是啥屏幕)

    vivox27屏幕是什么玻璃(vivox27是啥屏幕)

  • 抖音如何把视频和照片放一起(抖音如何把视频弄成合集)

    抖音如何把视频和照片放一起(抖音如何把视频弄成合集)

  • 什么原因会损坏送话器(什么原因会损坏手机硬件)

    什么原因会损坏送话器(什么原因会损坏手机硬件)

  • 什么协议是提供不可靠的数据传输(什么协议是提供服务的)

    什么协议是提供不可靠的数据传输(什么协议是提供服务的)

  • 流量速度慢怎么解决(流量速度慢怎么提速)

    流量速度慢怎么解决(流量速度慢怎么提速)

  • 轻松解决 CSS 代码都在一行的问题(完整的css代码案例)

    轻松解决 CSS 代码都在一行的问题(完整的css代码案例)

  • 技术使用费所得税怎么算
  • 应收账款贷方有余额是什么意思
  • 讲师培训费开票税点是?
  • 工资单上的retro
  • 教育费附加免税政策
  • 公司净资产减少
  • 高新技术企业认定
  • 以旧换新帐务处理
  • 房地产企业简易计税
  • 环保公司开具发票怎么开
  • 车间管理人员工资总额占车间工资总额的10%
  • 出口企业享受增值税优惠政策
  • 承包方给发包方付费
  • 销售成本结转账务处理
  • 一般纳税人转为小规模2022政策
  • 个税抵扣换工作未及时修改
  • 增值税抵扣需要哪些附件
  • 进项税加计扣除申报表怎么填
  • 职工领取企业年金税收优惠
  • 怎样知道自己是否贫血
  • 自定义输入是什么
  • 运输费计入什么会计科目?
  • 个体户升一般纳税人分红怎么交税
  • 公司固定资产一般谁负责
  • nmstt.exe - nmstt是什么进程 有什么用
  • 招行网银专业版怎么登陆
  • 城市基础设施配套费计入什么科目
  • 前端跨域的方法
  • vue全家桶插件有哪些
  • 特卡波小镇旅游攻略
  • 公司员工的车加油可以开公司发票吗
  • 中草药进销差价会计分录
  • php获取网站html代码
  • 如何将tomcat卸载干净
  • web 前端
  • mysqldump 导出数据
  • php公众号推送完整示例
  • thinkphp用户token
  • 企业发生的咨询费应计入哪个科目
  • 织梦如何使用
  • python循环语句的语法
  • sql2008安装出现以下错误
  • 未缴增值税的贷方
  • 工会经费和工会会费的区别与联系
  • 现金核算如何进行账务处理
  • 外经证预缴税款网上申报
  • 经营租赁属于什么收入
  • 其他业务收入的二级科目
  • 因企业增资而产生的费用
  • 存货跌价准备的账务处理
  • 联营企业和子公司哪个好
  • 研发费用人工费用包括
  • ubuntul
  • windows7用户
  • Vista 新命令收集整理完整版
  • 让你的时间更有价值
  • ubuntu系统安装教程详细
  • centos 拷贝
  • Win7旗舰版系统安装
  • hyper怎么用
  • 清除桌面应用软件
  • win10 rs1是什么版本
  • windows打开或关闭功能
  • centos named
  • java操作windows的文件管理器
  • 根据自己的需求配置一台电脑
  • mac电脑打开safari
  • linux cr3
  • win8系统蓝屏后无法修复
  • linux计划任务如何设置
  • linux用root登录
  • 优质电子书app
  • android内存工具
  • android canvas scale
  • shell脚本的fi
  • JavaScript For...In 使用方法
  • [置顶] [Android Studio 权威教程]Android Studio 三种添加插件的方式
  • jquery1.11.3
  • android 自定义actionbar
  • 跪式服务礼仪规范图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设