1.0.2 • Published 2 years ago

lazy-kit-crypto v1.0.2

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

lazy-kit-crypto

A customized crypto toolkit.

Functions

/**
 * 获取指定长度的随机整数
 * @param length 长度, 默认4
 * @returns 随机数
 */
function randomInt(length?: number): number;

/**
 * 返回一个基于日期+随机整数的UUID
 * @param extraLength 默认是20位长度, 如果需要更长, 可以设置增加的长度, 默认0
 * @returns UUID
 */
function dateUUID(extraLength?: number): string;

/**
 * 获取一个nodejs的UUID, v4版本
 * @param slash 默认true, 是否带有“-”
 * @returns 
 */
function v4UUID(slash?:boolean): string;

/**
MD5 (Message Digest 5):生成的哈希值长度为 128 位,等于 16 字符。
SHA-1 (Secure Hash Algorithm 1):生成的哈希值长度为 160 位,等于 20 字符。
SHA-256 (Secure Hash Algorithm 256):生成的哈希值长度为 256 位,等于 32 字符。
SHA-512 (Secure Hash Algorithm 512):生成的哈希值长度为 512 位,等于 64 字符。
SHA-3 (Secure Hash Algorithm 3):SHA-3 可以生成不同长度的哈希值,例如 SHA-3-256 生成 256 位哈希值,SHA-3-512 生成 512 位哈希值。
*/
type HashAlgorithm = "md5"|"sha1"|"sha256"|"sha512"|"sha3-256"|"sha3-512";
type HashEncoding = "hex"|"base64";
/**
 * 获取文本的摘要
 * @param input 输入的文本
 * @param options 参数 {
 * algorithm: "md5"|"sha1"|"sha256"|"sha512"|"sha3-256"|"sha3-512"
 * encoding: "hex"|"base64"
 * }
 * @returns 
 */
function hash(input: any, options?: {
  algorithm: HashAlgorithm; // 哈希算法,例如 'md5', 'sha256' 等
  encoding: HashEncoding; // 输出编码,例如 'hex', 'base64' 等
}): string;

/**
 * 加密参数
 */
interface EncryptOptions {
  keyLengthBytes: number; // 密钥字节长度
  encoding: "hex"|"base64"; // 编码方式,例如 'hex', 'base64' 等
  algorithm: string; // 加密算法,例如 'aes-192-cbc'
  inputEncoding: BufferEncoding; // 输入字符编码,例如 'utf8'
}

/**
 * 生成随机盐值
 * @param length 长度 默认16
 * @returns 
 */
function generateRandomSalt(length?: number): string;

/**
 * 对称加密函数
 * @param data 原文数据
 * @param secretKey 密钥字符串
 * @param salt 加盐
 * @param options 参数 EncryptionOptions
 * @returns 
 */
function encrypt(data: string, secretKey: string, salt: string, options: EncryptOptions): string;

/**
 * 对称解密函数
 * @param encryptedData 密文数据
 * @param secretKey 密钥字符串
 * @param salt 加盐
 * @param options 参数 EncryptionOptions
 * @returns 
 */
function decrypt(encryptedData: string, secretKey: string, salt: string, options: EncryptOptions): string;

/**
 * 生成 RSA 密钥对
 * @param options {
 * { 
    modulusLength=4096, 
    publicKeyEncoding={
      type: 'spki',
      format: 'pem',
    }, privateKeyEncoding = {
      type: 'pkcs8',
      format: 'pem',
    } 
  }
* @returns 
*/
function generateKeyPair(options?:any): { publicKey:string; privateKey:string; };

/**
 * 加密函数:使用公钥加密数据
 * @param data 原文
 * @param publicKey 加密私钥
 * @param dataEncoding 原文编码, 默认"utf8"
 * @param encryptEncoding 密文编码, 默认"base64"
 * @returns 密文
 */
function encryptWithPublicKey(data: string, publicKey: string, dataEncoding?:any, encryptEncoding?:any): string;

/**
 * 解密函数:使用私钥解密数据
 * @param encryptedData 密文
 * @param privateKey 解密私钥
 * @param dataEncoding 原文编码, 默认"utf8"
 * @param encryptEncoding 密文编码, 默认"base64"
 * @returns 原文
 */
function decryptWithPrivateKey(encryptedData: string, privateKey: string, dataEncoding?:any, encryptEncoding?:any): string;
1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago