有一些实现是依赖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 '中国国密加解密算法'
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。