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 '中國國密加解密演算法'