<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      安裝sm-crypto

      npm install --save sm-crypto
      參考一
      const sm4 = require('sm-crypto').sm4; 
      import { Base64 } from 'js-base64' 
      // const key = 'facca33012345678facca33012345678' // 32字節 可以為 16 進制串或字節數組,要求為 128 比特
      const key = '2YvDpbp6OwqZuxVF'
      
      //base64轉為16進制
      function base64ToHex(base64) {
        const bytes = window.atob(base64)
        let hex = ''
        for (let i = 0; i < bytes.length; i++) {
          const byte = bytes.charCodeAt(i).toString(16)
          hex += byte.padStart(2, '0')
        }
        return hex
      }
      
      //將key加密并返回16進制
      function changeKey() {
        const encodeBase64 = Base64.encode(key) //base64加密
        const hex = base64ToHex(encodeBase64)
        return hex
      }
      
      
      /*
       * text 待加密文本
       */
      export function encrypt(text) {
        const params = JSON.stringify(text)
        const encrypt = sm4.encrypt(params, changeKey())
        return encrypt
      }
      
      /*
       * text 待解密密文
       */
      export function decrypt(text) {
        const decrypt = sm4.decrypt(text, changeKey()) // 加密,不使用 padding,輸出16進制字符串
        return decrypt
      }
      
      export default {
        encrypt,
        decrypt
      }

      參考二:

      const sm4 = require('sm-crypto').sm4
      const msg = 'hello world! 我是 juneandgreen.' // 可以為 utf8 串或字節數組
      const key = '0123456789abcdeffedcba9876543210' // 可以為 16 進制串或字節數組,要求為 128 比特
      
      let encryptData = sm4.encrypt(msg, key) // 加密,默認輸出 16 進制字符串,默認使用 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,輸出為字節數組
      let encryptData = sm4.encrypt(msg, key, {mode: 'cbc', iv: 'fedcba98765432100123456789abcdef'}) // 加密,cbc 模式

      簽名/驗簽

      簽名:

      const { sm2 } = require('sm-crypto'); 
      const keyPair = sm2.generateKeyPairHex(); // 生成密鑰對 
      const publicKey = keyPair.publicKey; // 公鑰 
      const privateKey = keyPair.privateKey; // 私鑰
      
      const message = '這是要簽名的消息'; // 替換為實際要簽名的消息 
      // 使用私鑰對消息進行簽名  
      let sigValueHex = sm2.doSignature(message, privateKey); 
      console.log('簽名結果:', sigValueHex);

      驗簽

      const message = '這是要驗證簽名的消息'; // 應與簽名時使用的消息相同  
      const sigValueHex = '簽名值'; // 替換為實際的簽名值字符串,即簽名步驟中生成的sigValueHex  
        
      // 使用公鑰驗證簽名是否有效  
      let verifyResult = sm2.doVerifySignature(message, sigValueHex, publicKey);  
        
      console.log('驗簽結果:', verifyResult); // 如果驗證成功,應輸出true;否則輸出false

       

      posted on 2025-01-07 17:48  銘の  閱讀(137)  評論(0)    收藏  舉報

      友情鏈接:簫竹影(Java工程師)
      主站蜘蛛池模板: 日韩美女亚洲性一区二区| 中国少妇人妻xxxxx| 亚洲国产精品高清线久久| 亚洲精品日产AⅤ| 国产成人无码aa片免费看| 国产视频一区二区在线看| 精品亚洲国产成人av在线| 亚洲成av人片一区二区| 新巴尔虎左旗| 久久热这里只有精品66| 亚洲av无码乱码在线观看野外| av午夜久久蜜桃传媒软件| 国色天香中文字幕在线视频| 日韩精品一区二区在线视| 亚洲精品自拍区在线观看 | 啦啦啦高清在线观看视频www| 人妻少妇无码精品专区| 人妻中文字幕精品系列| 亚洲高清WWW色好看美女| 天堂8中文在线最新版在线| 日韩精品一区二区三区蜜臀| 男女性高爱潮免费网站| 隔壁老王国产在线精品| 熟妇的味道hd中文字幕| 熟妇人妻任你躁在线视频| av中文无码乱人伦在线观看| 亚洲精品成人一二三专区| 一区二区不卡99精品日韩| 久久精品中文字幕少妇| 亚洲av综合av一区| 免费人成在线观看品爱网| 日本熟妇色xxxxx日本免费看| 大香伊蕉在人线国产最新2005 | 日夜啪啪一区二区三区| 最新的国产成人精品2020| 亚洲精品尤物av在线网站| 色综合天天综合网天天看片| 国产欧美综合在线观看第十页| 成人精品视频一区二区三区| 亚洲精品色无码AV试看 | 狠狠躁夜夜躁人人爽天天5|