1.0.2 • Published 4 years ago

sm-coder v1.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

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);
1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago