nodejs模組導出變成瀏覽器可使用的js(sm4瀏覽器端js實現過程)

  • 2019 年 10 月 11 日
  • 筆記

有一些實現是依賴nodejs的能力來完成的,沒有瀏覽器端進行實現。所以需要變成瀏覽器端的可實現版本。

注意,此類可以導出的版本必定是不涉及系統相關的函數,比如獲取文件,獲取系統時間等只有nodejs獨有的是沒辦法完成的。

下面教方法:

一、安裝Browserify 工具

npm install -g browserify

二、安裝完成後可以使用命令:browserify

下面舉例使用nodejs實現的國密sm4演算法,變成一個瀏覽器端可以使用的js庫

nodejs端使用方式:https://www.ctolib.com/pecliu-gm-crypt.html

2.1 使用步驟如下:

// 1、新建一個文件夾(window下直接右鍵新建一個即可)  mkdir sm4  // 進入文件夾  cd sm4  // npm 初始化  npm init  // 然後一路回車  // 安裝國密sm4  npm install gm-crypt  // 寫一個使用腳本t.js,內容如下  const SM4 = require('gm-crypt').sm4;  console.log(SM4);  // 然後執行命令生成js腳本  browserify t.js > sm4.js  // 此時可以看到sm4腳本已經生成,用編輯器打開sm4.js,查找console.log(SM4),將其注釋掉,加上window.SM4 = SM4;  // 然後瀏覽器使用時候直接載入sm4,然後使用方式如下:  let sm4Config = {    // encrypt/decypt main key; cannot be omitted    key: 'JeF8U9wHFOMfs2Y8',      // optional; can be 'cbc' or 'ecb'    mode: 'cbc', // default      // optional; when use cbc mode, it's �necessary    iv: 'UISwD9fW6cFh9SNS', // default is null      // optional: this is the cipher data's type; Can be 'base64' or 'text'    cipherType: 'base64' // default is base64  }    let sm4 = new SM4(sm4Config);  // 加密  let plaintext = '中國國密加解密演算法'  let ciphertext = sm4.encrypt(plaintext)  // ciphertext's result is 'j/+HgSpv8RZQI2YtSq0L1RnemiSokMm1VvLHSTt245U='  // 解密  let ciphertext = 'j/+HgSpv8RZQI2YtSq0L1RnemiSokMm1VvLHSTt245U='  let plaintext = sm4.decrypt(ciphertext)  // plaintext's result is '中國國密加解密演算法'