client-crypto
v1.4.0
Published
Javascript Crypto Library for browser
Downloads
109
Maintainers
Readme
client-crypto
Javascript Crypto Library for browser
Install
npm install client-crypto
Usage
流程:
- 服务端使用非对称加密
RSA
生成公钥私钥,并将公钥发送给客户端。 - 客户端生成对称加密(这里使用
AES
)密钥,使用服务端发送的RSA
公钥加密该密钥,并将其发送给服务端。 - 服务端使用
RSA
私钥解密,得到该密钥。
此时,服务端、客户端同时拥有该密钥,使用AES
加密解密消息体。
RSA
加密
import Crypto from 'client-crypto';
Crypto.RSA.encrypt('secretKey', 'publicKey');
解密
import Crypto from 'client-crypto';
Crypto.RSA.encrypt('encryptedKey', 'privateKey');
AES
默认使用gcm
模式。
createKey 生成密钥
import Crypto from 'client-crypto';
Crypto.AES.createKey();
使用该方法生成密钥后,会缓存该密钥,使用加密(encrypt)或解密(decrypt)方法时也可不提供密钥。
encrypt 加密
import Crypto from 'client-crypto';
Crypto.AES.encrypt(data, '密钥');
该方法会先执行JSON.stringify(data),将数据转为json格式的字符串,然后使用AES加密。
decrypt 解密
import Crypto from 'client-crypto';
Crypto.AES.decrypt('encrypted message', '密钥');
该方法会使用AES解密,再执行JSON.parse,获取数据。
getKey 获取密钥
import Crypto from 'client-crypto';
Crypto.AES.getKey();
setKey 设置密钥
import Crypto from 'client-crypto';
Crypto.AES.setKey('密钥');
clearKey 清除密钥
import Crypto from 'client-crypto';
Crypto.AES.clearKey();
SHA256
import Crypto from 'client-crypto';
Crypto.SHA256('message');