1.0.2 • Published 4 years ago
sm-coder v1.0.2
sm-coder
根据国网安全要求封装的 国密算法sm2、sm3的js工具类
安装
npm方式安装
在nodejs环境下,输入命令: npm install sm-coder -s
import SmCoder from "sm-coder";
const coder = new SmCoder();
script标签引用
下载后,dist目录下的sm-coder.js可直接用script标签方式引入html中,会以var形式创建一个SmCoder类,实例化之后即可开始使用
<script src="sm-coder.js"></script>
<script>
var coder = new SmCoder();
//即可使用coder中的方法
</script>
使用方法
生成随机密钥对 generateKeyPair()
import SmCoder from "sm-coder";
const coder = new SmCoder();
let keypair = coder.generateKeyPair();
// 公钥
publicKey = keypair.publicKey;
// 私钥
privateKey = keypair.privateKey;
sm3杂凑 sm3Encode(password)
import SmCoder from "sm-coder";
const coder = new SmCoder();
let password = "password";
let sm3Code = coder.sm3Encode(password);
sm2加密 sm2Encode(password,publicKey,cipherMode?)
该方法为根据国网安全传输要求封装后的方法,其步骤为:
对口令PASSWORD先进行SM3加密生成密文SM3PASSWORD ,
然后通过SM2再进行一次加密 (SM2的加密公钥从后台获取),SM2加密的内容为[SM3PASSWORD+8位随机码+PASSWORD],
生成最终需要传递到后端的密文 SM2[SM3PASSWORD+8位随机码+ PASSWORD]
import SmCoder from "sm-coder";
const coder = new SmCoder();
let password = "password";
//cipherMode表示加密结果三个组成部分的排列方式
//0 - C1C2C3,1 - C1C3C2,默认为0
const cipherMode = 0;
//公钥在正常情况下应由服务器获取
const publicKey = "0438a5cc2ee9075b2c4339b414ebe046d18a32fb44fe9a44364baf3c4f9eb5a3fcff24623ea89f28150ddee1bf02eea4fefdf19622fd0aaafe4262869c78ccb775";
let sm2Code = coder.sm2Encode(password,publicKey,cipherMode);