/**
* Triple DES 加密模式名称枚举
*/
export declare enum TripleDesModeEnum {
ECB = "ECB",
CBC = "CBC",
CFB = "CFB",
CTR = "CTR",
OFB = "OFB",
CTRGladman = "CTRGladman"
}
/**
* Triple DES 加密模式名称常量对象
*/
export declare const TripleDesModeConst: {
readonly ECB: TripleDesModeEnum.ECB;
readonly CBC: TripleDesModeEnum.CBC;
readonly CFB: TripleDesModeEnum.CFB;
readonly CTR: TripleDesModeEnum.CTR;
readonly OFB: TripleDesModeEnum.OFB;
readonly CTRGladman: TripleDesModeEnum.CTRGladman;
};
/**
* Triple DES 加密填充方式名称枚举
*/
export declare enum TripleDesPaddingEnum {
AnsiX923 = "AnsiX923",
Iso10126 = "Iso10126",
ZeroPadding = "ZeroPadding",
Pkcs7 = "Pkcs7",
NoPadding = "NoPadding",
Iso97971 = "Iso97971"
}
/**
* Triple DES 加密填充方式名称常量对象
*/
export declare const TripleDesPaddingConst: {
readonly AnsiX923: TripleDesPaddingEnum.AnsiX923;
readonly Iso10126: TripleDesPaddingEnum.Iso10126;
readonly ZeroPadding: TripleDesPaddingEnum.ZeroPadding;
readonly Pkcs7: TripleDesPaddingEnum.Pkcs7;
readonly NoPadding: TripleDesPaddingEnum.NoPadding;
readonly Iso97971: TripleDesPaddingEnum.Iso97971;
};
/**
* Triple DES 加密工具中会使用到的常量
*/
export declare const TripleDesConst: {
/**
* 在后端中,DES 加密算法的密钥限制为长度 24 位的 byte 数组
*/
KEY_LEN: number;
/**
* 在后端中,DES 加密算法的加密盐(也就是后面的偏移量 IV)限制为长度 8 位的 byte 数组
*/
SALT_LEN: number;
/**
* 由于在后端中,DES 加密算法的默认实现为 DESede/ECB/PKCS5Padding,所以默认的加密模式为 ECB
*/
MODE_DEFAULT: TripleDesModeEnum;
/**
* 在后端中,DES 加密算法的默认实现为 DESede/ECB/PKCS5Padding,但是由于 CryptoJS 中没有与之
* 对应的最后一个分组的填充方式 padding,所以这里使用前后端都有的最后一个分组的填充方式 ZeroPadding
*/
PADDING_DEFAULT: TripleDesPaddingEnum;
};
/**
* Triple DES 加密算法加密模式
*/
export declare const TripleDesMode: {
readonly ECB: any;
readonly CBC: any;
readonly CFB: any;
readonly CTR: any;
readonly OFB: any;
readonly CTRGladman: any;
};
/**
* Triple DES 加密算法加密模式可选模式的类型
*/
export type TripleDesModeType = keyof typeof TripleDesMode;
/**
* Triple DES 加密算法最后一个分组的填充方式
*/
export declare const TripleDesPadding: {
readonly AnsiX923: any;
readonly Iso10126: any;
readonly ZeroPadding: any;
readonly Pkcs7: any;
readonly NoPadding: any;
readonly Iso97971: any;
};
/**
* DES 加密算法最后一个分组的填充方式可选值的类型
*/
export type TripleDesPaddingType = keyof typeof TripleDesPadding;
/**
* DES 加密算法加密解密处理函数通用形参列表类型
*/
export type CommonDesPropsType = {
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
};
/**
* DES 加密算法加密函数
*
* @param data 需要进行加密处理的数据。如果需要加密处理的数据为空,
* 或者不是字符串类型且没有开启对所有的数据类型进行加密,或者为空字符串,都将不进行加密处理,直接返回传
* 递进来的数据;如果开启了对所有的数据类型进行加密,但是传递进来的数据不是字符串类型,将其转化为 JSON
* 字符串,然后进行加密处理
* @param key 加密密钥。如果密钥长度小于 24 位,则会直接返回传递进
* 来需要加密处理的数据;如果密钥长度大于 24 位,则会对其进行截取,只取前 24 位
* @param salt 加密盐(偏移量)。如果加密盐为空或长度小于 8 位,则会
* 使用密钥的前 8 位作为盐;如果加密盐长度大于 8 位,则会对其进行截取,只取前 8 位
* @param isAllType 是否对所有的数据类型进行加密,默认为 false。
* 该项开启后,对于不是字符串类型的数据,会将其转化为 JSON 字符串,然后进行加密处理;如果没有开启,对于
* 不为字符串类型的数据,则不会进行加密处理,直接返回原数据
* @param mode 加密模式。默认为 ECB
* @param padding 最后一个分组的填充方式。默认为 ZeroPadding
*/
export declare const encrypt: ({ data, key, salt, isAllType, mode, padding, }: {
data: any;
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
}) => any;
/**
* 对数组类型的数据进行加密处理
* 该方法会循环对数组中的每项数据进行加密处理,然后返回一个由加密后的数据项组成的新数组
*
* @param arr 需要加密处理的数组数据。
* @param key 加密密钥
* @param salt 加密盐(偏移量)
* @param isAllType 是否对所有的数据类型进行加密,默认为 false。
* 该项开启后,对于数组中不是字符串类型的每一项数据,会将其转化为 JSON 字符串,然后进行加密处理;如果
* 没有开启,对于不为字符串类型的数据项,则不会进行加密处理,仍然原数据项
* @param isRecursion 是否递归处理数组项。默认为 false。如果开启了
* 递归加密处理,则对于数组类型或者对象类型的数据项,会优先进行递归,然后再对其中的子数组项进行加密处理
*
* @param mode 加密模式。默认为 ECB
* @param padding 最后一个分组的填充方式。默认为 ZeroPadding
*/
export declare const encryptArr: ({ arr, key, salt, isAllType, isRecursion, mode, padding, }: {
arr: any[] | null;
isRecursion?: boolean;
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
}) => any[] | null;
/**
* 对对象类型的数据进行加密处理
* 该方法会循环对对象中的每项数据进行加密处理,然后返回一个由加密后的数据项组成的新对象
*
* @param obj 需要加密处理的对象数据。
* @param key 加密密钥
* @param salt 加密盐(偏移量)
* @param isAllType 是否对所有的数据类型进行加密,默认为 false。
* 该项开启后,对于对象中不是字符串类型的每一项数据,会将其转化为 JSON 字符串,然后进行加密处理;如果
* 没有开启,对于不为字符串类型的数据项,则不会进行加密处理,仍然原数据项
* @param isRecursion 是否递归处理对象项。默认为 false。如果开启了
* 递归加密处理,则对于数组类型或者对象类型的数据项,会优先进行递归,然后再对其中的子数组项进行加密处理
*
* @param mode 加密模式。默认为 ECB
* @param padding 最后一个分组的填充方式。默认为 ZeroPadding
*/
export declare const encryptObj: ({ obj, key, salt, isAllType, isRecursion, mode, padding, }: {
obj: {
[prop: string]: any;
} | null;
isRecursion?: boolean;
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
}) => {
[prop: string]: any;
} | null;
/**
* 对任意类型的数据进行加密处理
*
* @param obj 需要加密处理的对象数据。
* @param key 加密密钥
* @param salt 加密盐(偏移量)
* @param isAllType 是否对所有的数据类型进行加密,默认为 false。
* 该项开启后,对于对象中不是字符串类型的每一项数据,会将其转化为 JSON 字符串,然后进行加密处理;如果
* 没有开启,对于不为字符串类型的数据项,则不会进行加密处理,仍然原数据项
* @param isRecursion 是否递归处理对象项。默认为 true。如果开启了
* 递归加密处理,则对于数组类型或者对象类型的数据项,会优先进行递归,然后再对其中的子数组项进行加密处理
*
* @param mode 加密模式。默认为 ECB
* @param padding 最后一个分组的填充方式。默认为 ZeroPadding
* @return {any} 加密处理后的数据
*/
export declare const encryptAny: ({ data, key, salt, isAllType, isRecursion, mode, padding, }: {
data: any;
isRecursion?: boolean;
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
}) => any;
/**
* DES 加密算法解密函数
*
* @param data 需要进行解密处理的数据。如果需要解密处理的数据为空,
* 或者不是字符串类型且没有开启对所有的数据类型进行解密,或者为空字符串,都将不进行解密处理,直接返回传
* 递进来的数据
* @param key 加密密钥。如果密钥长度小于 24 位,则会直接返回传递进
* 来需要解密处理的密文;如果密钥长度大于 24 位,则会对其进行截取,只取前 24 位
* @param salt 加密盐(偏移量)。如果加密盐为空或长度小于 8 位,则会
* 使用密钥的前 8 位作为盐;如果加密盐长度大于 8 位,则会对其进行截取,只取前 8 位
* @param isAllType 加密处理时,是否对所有的数据类型进行加密,默认为 false。
* 该项开启后,对于解密后不是字符串类型的数据,会对其进行 JSON 字符串
* 解析;如果没有开启,对于传入的需要解密处理的数据为空,或者不是字符串类型,或者为空字符串,都将不进行解
* 密处理,直接返回传递进来的数据
* @param mode 加密模式。默认为 ECB
* @param padding 最后一个分组的填充方式。默认为 ZeroPadding
*/
export declare const decrypt: ({ data, key, salt, isAllType, mode, padding, }: {
data: any;
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
}) => any;
/**
* 对数组类型的数据进行解密处理
* 该方法会循环对数组中的每项数据进行解密处理,然后返回一个由解密后的数据项组成的新数组
*
* @param arr 需要解密处理的数组数据。
* @param key 密钥
* @param salt 加密盐(偏移量)
* @param isAllType 加密处理时,是否对所有的数据类型进行加密,默认为 false。
* 该项开启后,对于解密后不是字符串类型的数据项,会对其进行 JSON 字符
* 串解析;如果没有开启,对于不是字符串类型的数据项,都将不进行解密处理,直接保留原数据项
* @param isRecursion 是否递归处理数组项。默认为 false。如果开启
* 了递归解密处理,则对于数组类型或者对象类型的数据项,会优先进行递归,然后再对其中的子数组项进行解密处理
*
* @param mode 加密模式。默认为 ECB
* @param padding 最后一个分组的填充方式。默认为 ZeroPadding
*/
export declare const decryptArr: ({ arr, key, salt, isAllType, isRecursion, mode, padding, }: {
arr: any[] | null;
isRecursion?: boolean;
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
}) => any[] | null;
/**
* 对对象类型的数据进行解密处理
* 该方法会循环对对象中的每项数据进行解密处理,然后返回一个由解密后的数据项组成的新对象
*
* @param obj 需要解密处理的对象数据。
* @param key 密钥
* @param salt 加密盐(偏移量)
* @param isAllType 加密处理时,是否对所有的数据类型进行加密,默认为 false。
* 该项开启后,对于解密后不是字符串类型的数据项,会对其进行 JSON 字符
* 串解析;如果没有开启,对于不是字符串类型的数据项,都将不进行解密处理,直接保留原数据项
* @param isRecursion 是否递归处理数组项。默认为 false。如果开启
* 了递归解密处理,则对于数组类型或者对象类型的数据项,会优先进行递归,然后再对其中的子数组项进行解密处理
*
* @param mode 加密模式。默认为 ECB
* @param padding 最后一个分组的填充方式。默认为 ZeroPadding
*/
export declare const decryptObj: ({ obj, key, salt, isAllType, isRecursion, mode, padding, }: {
obj: {
[prop: string]: any;
} | null;
isRecursion?: boolean;
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
}) => {
[prop: string]: any;
} | null;
/**
* 对任意类型的数据进行解密处理
*
* @param obj 需要解密处理的对象数据。
* @param key 密钥
* @param salt 加密盐(偏移量)
* @param isAllType 加密处理时,是否对所有的数据类型进行加密,默认为 false。
* 该项开启后,对于解密后不是字符串类型的数据项,会对其进行 JSON 字符
* 串解析;如果没有开启,对于不是字符串类型的数据项,都将不进行解密处理,直接保留原数据项
* @param isRecursion 是否递归处理数据项。默认为 true。如果开启
* 了递归解密处理,则对于数组类型或者对象类型的数据项,会优先进行递归,然后再对其中的子数据项进行解密处理
*
* @param mode 加密模式。默认为 ECB
* @param padding 最后一个分组的填充方式。默认为 ZeroPadding
* @returns {any} 解密处理后的数据
*/
export declare const decryptAny: ({ secretData, key, salt, isAllType, isRecursion, mode, padding, }: {
secretData: any;
isRecursion?: boolean;
key: string;
salt?: string;
isAllType?: boolean;
mode?: TripleDesModeType;
padding?: TripleDesPaddingType;
}) => any;