@tnwx/kits
Version:
TNWX 微信系开发脚手架之工具集合
120 lines (119 loc) • 3.35 kB
TypeScript
/// <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"
}