UNPKG

@tnwx/kits

Version:

TNWX 微信系开发脚手架之工具集合

120 lines (119 loc) 3.35 kB
/// <reference types="node" /> import * as crypto from 'crypto'; export declare enum SIGN_TYPE { SIGN_TYPE_HMACSHA256 = "HMAC-SHA256", SIGN_TYPE_MD5 = "MD5" } export declare class Kits { static FIELD_SIGN: string; static FIELD_SIGN_TYPE: string; /** * AES-128-CBC 加密方法 * @param key 加密key * @param iv 向量 * @param data 需要加密的数据 */ static aes128cbcEncrypt(key: Buffer, iv: Buffer, data: string): string; /** * AES-128-CBC 解密方法 * @param key 解密的key * @param iv 向量 * @param crypted 密文 */ static aes128cbcDecrypt(key: Buffer, iv: Buffer, crypted: string): string; /** * AES-256-ECB 加密方法 * @param key 加密key * @param iv 向量 * @param data 需要加密的数据 */ static aes256ecbEncrypt(key: Buffer, iv: Buffer, data: string): string; /** * AES-256-ECB 解密方法 * @param key 解密的key * @param iv 向量 * @param crypted 密文 */ static aes256ecbDecrypt(key: Buffer, iv: Buffer, crypted: string): string; /** * hmacsha256 加密 * @param data * @param key */ static hmacsha256(data: string, key: string): string; /** * sha256 加密 * @param data */ static sha256(data: string): string; /** * sha256 加密 * @param data */ static sha256x(data: crypto.BinaryLike): string; /** * sha1加密 * @param data */ static sha1(data: string): string; /** * md5 加密 * @param data */ static md5(data: string): string; static hash(data: string, algorithm: string): string; static hashx(data: crypto.BinaryLike, algorithm: string): string; /** * SHA256withRSA * @param data 待加密字符 * @param privatekey 私钥key */ static sha256WithRsa(data: string, privatekey: Buffer): string; /** * SHA256withRSA 验证签名 * @param publicKey 公钥key * @param signature 待验证的签名串 * @param data 需要验证的字符串 */ static sha256WithRsaVerify(publicKey: Buffer, signature: string, data: string): boolean; /** * AEAD_AES_256_GCM 解密 * @param key * @param nonce * @param associatedData * @param ciphertext */ static aes256gcmDecrypt(key: string, nonce: string, associatedData: string, ciphertext: string): string; /** * 随机生成字符串 */ static generateStr(): string; /** * 生成签名 * @param data * @param key api key * @param signTypeParam 签名类型 */ static generateSignature(data: any, key: string, signTypeParam: SIGN_TYPE, signKeyType?: SIGN_KEY_TYPE): string; /** * 生成带有签名的 xml 数据 * @param data * @param key * @param signType */ static generateSignedXml(data: object, key: string, signType: SIGN_TYPE): Promise<any>; /** * xml 字符串转换成对象 * @param xmlStr */ static xml2obj(xmlStr: string): Promise<any>; /** * 普通对象转换成 xml 字符串 * @param obj */ static obj2xml(obj: Object): Promise<any>; } export declare enum SIGN_KEY_TYPE { KEY = "key", SECRET = "secret" }