国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端國密加解密使用方法SM2、SM3、SM4

這篇具有很好參考價值的文章主要介紹了前端國密加解密使用方法SM2、SM3、SM4。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ?國密算法,即國家商用密碼算法。是由國家密碼管理局認(rèn)定和公布的密碼算法標(biāo)準(zhǔn)及其應(yīng)用規(guī)范,其中部分密碼算法已經(jīng)成為國際標(biāo)準(zhǔn)。如SM系列密碼,SM代表商密,即商業(yè)密碼,是指用于商業(yè)的、不涉及國家秘密的密碼技術(shù)。

? ? ?不多廢話直接上干貨

?國密SM的安裝方法

項目中 可能存在版本問題 用這個降級安裝 (后面出現(xiàn)安裝問題同理)

npm install --save sm-crypto   或  npm install --save sm-crypto --legacy-peer-deps   

1、SM2是非對稱加密算法

它是基于橢圓曲線密碼的公鑰密碼算法標(biāo)準(zhǔn),其秘鑰長度256bit,包含數(shù)字簽名、密鑰交換和公鑰加密,用于替換RSA/DH/ECDSA/ECDH等國際算法??梢詽M足電子認(rèn)證服務(wù)系統(tǒng)等應(yīng)用需求,由國家密碼管理局于2010年12月17號發(fā)布。

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


? ? SM2引入使用方法?

const sm2 = require('sm-crypto').sm2
const cipherMode = 1 // 1 - C1C3C2,0 - C1C2C3,默認(rèn)為1 
****后端的話可以約定但后端默認(rèn)加密方法好像是0 - C1C2C3****
在解密時 使用的密鑰和密位一般是傳輸過來的,密文傳輸?shù)脕淼脑掗_頭會由04 
需要刪除,同時密鑰可能存在必須小寫的情況 key.slice(2).toLocaleLowerCase() 可以使用這個方法

let encryptData = sm2.doEncrypt(msgString, publicKey, cipherMode) // 加密結(jié)果

let decryptData = sm2.doDecrypt(encryptData, privateKey, cipherMode) // 解密結(jié)果

下面的一般特殊情況才會用到
encryptData = sm2.doEncrypt(msgArray, publicKey, cipherMode) // 加密結(jié)果,輸入數(shù)組

decryptData = sm2.doDecrypt(encryptData, privateKey, cipherMode, {output: 'array'}) // 解密結(jié)果,輸出數(shù)組

2、SM3是一種密碼雜湊算法(用于數(shù)據(jù)摘要保證完整性)

? 用于替代MD5/SHA-1/SHA-2等國際算法,適用于數(shù)字簽名和驗證、消息認(rèn)證碼的生成與驗證以及隨機數(shù)的生成,可以滿足電子認(rèn)證服務(wù)系統(tǒng)等應(yīng)用需求,于2010年12月17日發(fā)布。

它是在SHA-256基礎(chǔ)上改進(jìn)實現(xiàn)的一種算法,采用Merkle-Damgard結(jié)構(gòu),消息分組長度為512bit,輸出的摘要值長度為256bit。

引入使用方法? ??

const sm3 = require('sm-crypto').sm3
?? ?this.loginForm = sm3(this.loginForm) //獲得摘要后的數(shù)據(jù)

3、SM4是分組加密算法(對稱性的加密方法)

? 跟SM1類似,是我國自主設(shè)計的分組對稱密碼算法,用于替代DES/AES等國際算法。SM4算法與AES算法具有相同的密鑰長度、分組長度,都是128bit。于2012年3月21日發(fā)布,適用于密碼應(yīng)用中使用分組密碼的需求。
加密

const sm4 = require('sm-crypto').sm4
const msg = '你好,我是空空.' // 可以為 utf8 串或字節(jié)數(shù)組
const key = 'facca330123456789abcdas3210' // 可以為 16 進(jìn)制串或字節(jié)數(shù)組,要求為 128 比特

前后端約定一種下面的加密方法
let encryptData = sm4.encrypt(msg, key) // 加密,默認(rèn)輸出 16 進(jìn)制字符串,默認(rèn)使用 pkcs#7 填充(傳 pkcs#5 也會走 pkcs#7 填充)?
let encryptData = sm4.encrypt(msg, key, {padding: 'none'}) // 加密,不使用 padding
let encryptData = sm4.encrypt(msg, key, {padding: 'none', output: 'array'}) // 加密,不使用 padding,輸出為字節(jié)數(shù)組
let encryptData = sm4.encrypt(msg, key, {mode: 'cbc', iv: 'fedcba98765432100123456789abcdef'}) // 加密,cbc 模式


解密

const sm4 = require('sm-crypto').sm4
const encryptData = '這里放加密后的數(shù)據(jù)' // 可以為 16 進(jìn)制串或字節(jié)數(shù)組
const key = 'abcdeffedcba98765432100123456789' // 可以為 16 進(jìn)制串或字節(jié)數(shù)組,要求為 128 比特

用約定的解密方法解密

let decryptData = sm4.decrypt(encryptData, key) // 解密,默認(rèn)輸出 utf8 字符串,默認(rèn)使用 pkcs#7 填充(傳 pkcs#5 也會走 pkcs#7 填充)
let decryptData = sm4.decrypt(encryptData, key, {padding: 'none'}) // 解密,不使用 padding
let decryptData = sm4.decrypt(encryptData, key, {padding: 'none', output: 'array'}) // 解密,不使用 padding,輸出為字節(jié)數(shù)組
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);//解密

當(dāng)初為了找到前端的使用方法,搜的腦子疼,為了配合后端加解密測試腦子更疼了,

使用方法的時候千萬要主要 前后端保持加解密密鑰格式方法的一致性

附上npm網(wǎng)址 :https://www.npmjs.com/package/sm-crypto?activeTab=explore文章來源地址http://www.zghlxwxcb.cn/news/detail-407565.html

到了這里,關(guān)于前端國密加解密使用方法SM2、SM3、SM4的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SM2國密算法加解密

    接口安全設(shè)計原則的一個點就是數(shù)據(jù)不能明文傳輸,除了https這個必須的請求外,接口數(shù)據(jù)加密也是一個重要的方式,下面介紹一下SM2國密算法加解密的使用方式。 這里我就針對目前前后端分離架構(gòu)的方式來簡單介紹一下如何正確使用 SM2 算法對數(shù)據(jù)進(jìn)行加解密,介紹分為后

    2024年02月11日
    瀏覽(45)
  • 基于hutool 封裝國密sm2,sm4 加解密算法

    基于hutool 封裝國密sm2,sm4 加解密算法 1. 加入依賴包 2. 編碼

    2024年02月13日
    瀏覽(24)
  • 國密:生成SM2秘鑰、加解密及加驗簽

    國密:生成SM2秘鑰、加解密及加驗簽

    國密改造已經(jīng)持續(xù)了很長時間了,相信很多從事金融科技類的程序猿都遇到過這個需求。這篇文章就為大家?guī)砉P者對于國密改造的一些經(jīng)驗,主要是代碼層面,有興趣的同學(xué)可以研究下國密的算法模型! 注:本文所用到的工具類并非筆者所寫! 目錄 一、國密簡述 二、依賴

    2024年02月03日
    瀏覽(24)
  • 國密SM2: 加解密實現(xiàn) java代碼完整示例

    國密SM2: 加解密實現(xiàn) java代碼完整示例

    目錄 ?具體Java代碼SM2算法加解密實現(xiàn)Demo: pom依賴引入 :? 國家密碼管理局于2010年12月17日發(fā)布了SM2算法,并要求現(xiàn)有的基于RSA算法的電子認(rèn)證系統(tǒng)、密鑰管理系統(tǒng)、應(yīng)用系統(tǒng)進(jìn)升級改造,使用支持國密SM2算法的證書。 ?? 基于ECC橢圓曲線算法的SM2算法,則普遍采用256位密鑰

    2024年02月13日
    瀏覽(18)
  • 國密sm2公鑰加密 私鑰解密java代碼實現(xiàn)

    目錄 一、引入jar包 二、生成秘鑰對,加解密工具類

    2024年02月11日
    瀏覽(93)
  • 國密SM2算法(JS加密,C#、Java解密)

    國密SM2算法(JS加密,C#、Java解密)

    常見的滲透測試會將網(wǎng)站登錄時密碼使用明文傳輸視為風(fēng)險。推薦使用國密算法或者RSA算法對密碼進(jìn)行加密傳輸。 RSA加密(JS加密,C#、Java解密)請參考《RSA對稱加密(JS加密,C#、Java解密)》?????? 本文描述國密SM2算法的實現(xiàn)。 一、工作原理 前端js使用公鑰進(jìn)行加密

    2024年02月02日
    瀏覽(32)
  • OpenSSL 3.1.1 ECC 加密、解密、簽名、驗簽(國密 sm2、sm3)

    openssl 3 默認(rèn)廢棄了 舊版本 (opessl 1.x) 的部分api 導(dǎo)致部分舊ecc 代碼無法使用(可以通過配置編譯選項打開) ,這里展示如何使用新接口用ECC 進(jìn)行加密解密。 新接口是真的方便,基本上你都不需要懂啥密碼學(xué)知識,對我們這種密碼白癡來說太好了 頭文件 生成密鑰對 導(dǎo)出公

    2024年02月05日
    瀏覽(54)
  • 醫(yī)保移動支付加密解密請求工具封裝【國密SM2SM4】

    醫(yī)保移動支付加密解密請求工具封裝【國密SM2SM4】

    醫(yī)保移動支付加密解密請求工具封裝 定點醫(yī)藥機構(gòu)向地方移動支付中心發(fā)起費用明細(xì)上傳、支付下單、醫(yī)保退費等交易時需要發(fā)送密文,由于各大醫(yī)療機構(gòu)廠商的開發(fā)語各不相同,可能要有java的、c#的、python的、pb的、nodjs的、php的、還可能有Delphi的等。。。。很多開發(fā)語言

    2024年01月21日
    瀏覽(123)
  • 前端使用國密SM4進(jìn)行加密、解密

    前端使用國密SM4進(jìn)行加密、解密

    前端/后端使用 國密SM4 進(jìn)行加密/解密, 【注意】前后端配合加解密時,需要我們 自定義密鑰 ,一般由后端提供 下載 sm4util 依賴 sm4util 依賴使用說明 使用 - ECB 模式加解密 后端代碼參考:https://blog.csdn.net/qq_48922459/article/details/122130283 這種辦法好像只能使用默認(rèn)密鑰 key,不能

    2023年04月23日
    瀏覽(104)
  • vue前端國密SM2, SM4 算法實現(xiàn)

    整體加密邏輯是,首先生成16位key值 用SM2 公鑰加密該key值,后端用sm2私鑰 解密出key值,然后采用sm4方法根據(jù)key值對返回值進(jìn)行加密,前端采用sm4 對后端返回結(jié)果進(jìn)行解密進(jìn)行前端展示 目前主要常用的國密算法有sm-crypto,gm-crypto,gm-crypt(SM4) 1、安裝 sm-crypto 2、包裝加解密

    2024年02月12日
    瀏覽(55)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包