npm 包 bt-data 使用教程

阅读时长 12 分钟读完

简介

bt-data 是一个轻量级的 JavaScript 库,提供了前端实现数据加密和解密的功能。它支持主流的对称加密算法和非对称加密算法,并且具有简单易用的 API 接口,方便前端开发人员使用。

bt-data 的官方网站:https://github.com/monkindey/bt-data

安装

通过 npm 安装 bt-data:

然后在你的项目中引入:

使用

对称加密

bt-data 支持主流的对称加密算法,包括 AES、DES、3DES、RC4 和 Blowfish。

加密

使用 btData.symmetric.encrypt 对数据进行加密。API 接口如下:

参数说明:

  • key:加密密钥。
  • plaintext:待加密的数据,可以是一个字符串或一个 Buffer 对象。
  • algorithm:加密算法,可选值为 "aes"、"des"、"3des"、"rc4" 和 "blowfish",默认值为 "aes"。
  • mode:加密模式,可选值为 "ecb"、"cbc"、"cfb" 和 "ofb",默认值为 "ecb"(仅在 algorithm 为 "aes"、"des" 或 "3des" 时有效)。
  • padding:填充模式,可选值为 "pkcs5"、"pkcs7"、"zero" 和 "ansix923",默认值为 "pkcs5"(仅在 algorithm 为 "aes"、"des" 或 "3des" 时有效)。

示例代码:

解密

使用 btData.symmetric.decrypt 对加密数据进行解密。API 接口如下:

参数说明:

  • key:解密密钥。
  • ciphertext:待解密的数据,必须是一个已经加密过的字符串。
  • algorithm:解密算法,可选值为 "aes"、"des"、"3des"、"rc4" 和 "blowfish",默认值为 "aes"。
  • mode:解密模式,可选值为 "ecb"、"cbc"、"cfb" 和 "ofb",默认值为 "ecb"(仅在 algorithm 为 "aes"、"des" 或 "3des" 时有效)。
  • padding:填充模式,可选值为 "pkcs5"、"pkcs7"、"zero" 和 "ansix923",默认值为 "pkcs5"(仅在 algorithm 为 "aes"、"des" 或 "3des" 时有效)。

示例代码:

非对称加密

bt-data 支持主流的非对称加密算法,包括 RSA 和 DSA。

生成密钥对

使用 btData.asymmetric.generateKeyPair 生成密钥对。API 接口如下:

参数说明:

  • keySize:密钥长度,单位为比特。对于 RSA,建议使用 1024 位或以上的密钥;对于 DSA,建议使用 512 位或以上的密钥。
  • algorithm:算法名称,可选值为 "rsa" 和 "dsa",默认值为 "rsa"。

示例代码:

公钥加密

使用 btData.asymmetric.encryptByPublicKey 对数据进行加密。API 接口如下:

参数说明:

  • publicKey:公钥。
  • plaintext:待加密的数据,可以是一个字符串或一个 Buffer 对象。
  • algorithm:加密算法,可选值为 "rsa" 和 "dsa",默认值为 "rsa"。

示例代码:

-- -------------------- ---- -------
----- --------- - ----------- --- ------ ----------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  --------- --- ------ ------------
----- --------- - ------- --------
----- ---------- - ----------------------------------------------- -----------

------------------------ -- --------

私钥解密

使用 btData.asymmetric.decryptByPrivateKey 对加密数据进行解密。API 接口如下:

参数说明:

  • privateKey:私钥。
  • ciphertext:待解密的数据,必须是一个已经加密过的字符串。
  • algorithm:加密算法,可选值为 "rsa" 和 "dsa",默认值为 "rsa"。

示例代码:

-- -------------------- ---- -------
----- ---------- - ----------- --- ------- ----------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  --------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  -------------------------------------------------------------------- -
  ---------------------------------------

- ------------------------------------------------------------------------------ --------
------------------------------------------------------------------------------------------------------------------------
纠错
反馈