crypto_net

1.1.2 • Public • Published

crypto_net

crypto_net是一个JavaScript库,可以简单实现加密、解密、消息摘要、签名和验证数据,编码和解码数据,以及网络请求统一拦截等。它还包括用于将数据转换为二进制数据,以及读取Arraybuffer,blob等二进制数据为其他形式数据的方法,以及提供一些与网络加载优化的相关方法,比如延迟加载、预加载和滚动加载等。

特点:

这是一个很小的包,没有臃肿的体积,且支持es6按需加载,帮助你tree-shaking。提供了实用的跟网络请求有关的工具函数。

Installation

通过npm下载:

npm install crypto_net

Usage:

// es module
import {utf16ToBase64,base64ToUtf16,encodeStr,decodeCodePoints} from 'crypto_net'
utf16ToBase64('你好')//5L2g5aW9
base64ToUtf16('5L2g5aW9')//你好
encodeStr('你好', 'utf-16')//Uint16Array(2)[20320, 22909]
decodeCodePoints(new Uint16Array([20320, 22909]), 'utf-16')//你好
encodeStr('你好', 'utf-8')//Uint8Array(6) [ 228, 189, 160, 229, 165, 189 ]
decodeCodePoints(new Uint8Array([228, 189, 160, 229, 165, 189]), 'utf-8')//你好

API:

1. Encoding and Decoding

  • base64ToUtf16(base64String: string): string 将base64字符串转换为utf16编码的字符串。

  • utf16ToBase64(utf16String: string): string 将utf16编码的字符串转换为base64字符串。

  • encodeStr(str:String, encoding:"utf-8"|"utf-16"):Uint8Array|Uint16Array 返回编码后的Uint8Array或者Uint16Array。

  • decodeCodePoints(codePoints:Uint8Array, encoding:"utf-8"|"utf-16"|"windows-1251"|"base64"|"ascii"|"utf-8"|"gbk"等编码类型): string 返回解码后的字符串

2. Encryption and Decryption

  • getEncryKey(method, algorithm, extractable, usages, options):promise promise兑现为生成一个CryptoKey密钥对象。

  • encry(plainText,algorithmn,key,options): promise promise兑现为一个包含密文数据的Arraybuffer。

  • decry(cipherText,algorithmn,key):promise

    promise兑现为一个包含原数据的Arraybuffer。

3. Signing and Verifying

  • sign(data,algorithmn,key):promise 兑现为包含签名的Arraybuffer。

  • generateDigest(algorithmn,data):promise 兑现为包含摘要数据的ArrayBuffer。

  • verify(signedData,signature,algorithmn,key):promise 兑现为表示是否验证通过的boolean。

4. Axios类:

封装了fetch,具有跟axios一样的拦截器功能。

  • 通过Axios.get/post/delete/put/options/patch/connect等方法发起网络请求。
  • 通过Axios.requestInterception(dealConfig,dealError)设置全局请求拦截器。
  • 通过Axios.responseInterception(dealResponse,dealError)设置全局响应拦截器。

4. 处理二进制数据

  • readBlob(blob, type:"url"|"text"|"stream"|"dataUrl"|"arrayBuffer"):promise 兑现为给定类型数据
  • readArrayBuffer(arraybuffer, type:"url"|"string"|"stream"|"dataUrl"|"arrayBuffer"|"blob"|"typedArray",options) 当type为'string'时在options中提供decodeType,为'blob'时在options提供blob的类型blobType。该函数会直接返回对应的数据。
  • encodeToBinary(data,dataType:"blob"|"arrayBuffer"|"typedArray",{type})dataType为blob时在options.type中提供这个blob的类型,为typedArray时options.type提供特定类型如"Uint8Array",该函数会直接返回对应的数据。

5. Utility Functions

优化加载性能的根据函数:

  • preLoadScript(src):void 在浏览器空闲时通过script标签预加载async的方式预加载脚本。

  • prefetchAsset(src, {crossOrigin}) 浏览器空闲时通过link预加载资源,需要指定跨域相关头部。

  • scrollLoad(containerSelector,offset,delay,options):promise 当容器滚到距离底部offset的距离时promise兑现为true

License This package is licensed under the MIT License.

Package Sidebar

Install

npm i crypto_net

Weekly Downloads

0

Version

1.1.2

License

ISC

Unpacked Size

55.9 kB

Total Files

12

Last publish

Collaborators

  • caisisi