@fast-china/utils 2.1.5 → 2.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +14 -4
- package/README.zh.md +14 -4
- package/THIRD_PARTY_LICENSES.md +26 -0
- package/dist/crypto/index.mjs +2240 -33
- package/dist/crypto/index.mjs.map +1 -1
- package/dist/dom/index.mjs +2 -0
- package/dist/index.d.mts +1918 -26
- package/dist/index.global.min.js +1 -1
- package/dist/index.global.min.js.map +1 -1
- package/dist/index.mjs +9 -1
- package/dist/internal/runtime.mjs.map +1 -1
- package/dist/vue/breakpoints.mjs +46 -0
- package/dist/vue/breakpoints.mjs.map +1 -0
- package/dist/vue/element-size.mjs +33 -0
- package/dist/vue/element-size.mjs.map +1 -0
- package/dist/vue/event-listener.mjs +30 -0
- package/dist/vue/event-listener.mjs.map +1 -0
- package/dist/vue/index.mjs +15 -0
- package/dist/vue/now.mjs +29 -0
- package/dist/vue/now.mjs.map +1 -0
- package/dist/vue/resize-observer.mjs +31 -0
- package/dist/vue/resize-observer.mjs.map +1 -0
- package/dist/vue/window-size.mjs +32 -0
- package/dist/vue/window-size.mjs.map +1 -0
- package/package.json +4 -6
- package/dist/array/index.d.mts +0 -94
- package/dist/async/index.d.mts +0 -145
- package/dist/base64/index.d.mts +0 -106
- package/dist/color/index.d.mts +0 -89
- package/dist/crypto/index.d.mts +0 -327
- package/dist/date/index.d.mts +0 -190
- package/dist/dom/style.d.mts +0 -29
- package/dist/env/index.d.mts +0 -62
- package/dist/function/index.d.mts +0 -13
- package/dist/identity/index.d.mts +0 -77
- package/dist/internal/text.d.mts +0 -15
- package/dist/logger/index.d.mts +0 -90
- package/dist/number/index.d.mts +0 -89
- package/dist/object/index.d.mts +0 -114
- package/dist/storage/index.d.mts +0 -115
- package/dist/string/index.d.mts +0 -141
- package/dist/vue/emits.d.mts +0 -23
- package/dist/vue/expose.d.mts +0 -11
- package/dist/vue/func.d.mts +0 -13
- package/dist/vue/index.d.mts +0 -9
- package/dist/vue/install.d.mts +0 -50
- package/dist/vue/props.d.mts +0 -22
- package/dist/vue/render.d.mts +0 -11
- package/dist/vue/slots.d.mts +0 -18
- package/dist/vue/with.d.mts +0 -11
- package/docs/API.md +0 -155
- package/docs/API.zh-CN.md +0 -154
- package/docs/DEVELOPMENT_RELEASE.zh-CN.md +0 -65
- package/docs/RUNTIME_CONTRACT.md +0 -42
package/dist/base64/index.d.mts
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { DecodedText } from "../internal/text.mjs";
|
|
2
|
-
//#region src/base64/index.d.ts
|
|
3
|
-
/**
|
|
4
|
-
* 将任意字节编码为标准 Base64。
|
|
5
|
-
*
|
|
6
|
-
* @param bytes - 不会被修改的字节序列。
|
|
7
|
-
* @returns 带标准 `=` 填充的 Base64 文本。
|
|
8
|
-
*/
|
|
9
|
-
export declare function encodeBase64Bytes(bytes: Uint8Array): string;
|
|
10
|
-
/**
|
|
11
|
-
* 解码标准 Base64。
|
|
12
|
-
*
|
|
13
|
-
* @remarks 允许省略填充和包含 ASCII 空白,但拒绝非规范尾部位。
|
|
14
|
-
* @param value - Base64 文本。
|
|
15
|
-
* @returns 新建的字节数组。
|
|
16
|
-
* @throws 输入非法时抛出 `TypeError`。
|
|
17
|
-
*/
|
|
18
|
-
export declare function decodeBase64Bytes(value: string): Uint8Array;
|
|
19
|
-
/**
|
|
20
|
-
* 将 UTF-8 文本编码为标准 Base64。
|
|
21
|
-
*
|
|
22
|
-
* @param value - 任意 Unicode 字符串。
|
|
23
|
-
* @returns 带标准填充的 Base64 文本。
|
|
24
|
-
* @throws 缺少 Encoding API 时抛出 `Error`。
|
|
25
|
-
*/
|
|
26
|
-
export declare function encodeBase64(value: string): string;
|
|
27
|
-
/**
|
|
28
|
-
* 将标准 Base64 解码为 UTF-8 文本。
|
|
29
|
-
*
|
|
30
|
-
* @param value - Base64 文本。
|
|
31
|
-
* @returns 可直接使用或显式调用 `.parseJson<Value>()` 的原始 Unicode 字符串。
|
|
32
|
-
* @throws Base64 或 UTF-8 非法时抛出 `TypeError`;缺少 Encoding API 时抛出 `Error`。
|
|
33
|
-
*/
|
|
34
|
-
export declare function decodeBase64(value: string): DecodedText;
|
|
35
|
-
/**
|
|
36
|
-
* 将任意字节编码为无填充 Base64URL。
|
|
37
|
-
*
|
|
38
|
-
* @param bytes - 不会被修改的字节序列。
|
|
39
|
-
* @returns 仅使用 URL 安全字母表的文本。
|
|
40
|
-
*/
|
|
41
|
-
export declare function encodeBase64UrlBytes(bytes: Uint8Array): string;
|
|
42
|
-
/**
|
|
43
|
-
* 解码 Base64URL 字节。
|
|
44
|
-
*
|
|
45
|
-
* @remarks 接受带填充和无填充形式,不接受空白或标准 Base64 的 `+`、`/`。
|
|
46
|
-
* @param value - Base64URL 文本。
|
|
47
|
-
* @returns 新建的字节数组。
|
|
48
|
-
* @throws 输入非法时抛出 `TypeError`。
|
|
49
|
-
*/
|
|
50
|
-
export declare function decodeBase64UrlBytes(value: string): Uint8Array;
|
|
51
|
-
/**
|
|
52
|
-
* 将 UTF-8 文本编码为无填充 Base64URL。
|
|
53
|
-
*
|
|
54
|
-
* @param value - 任意 Unicode 字符串。
|
|
55
|
-
* @returns 仅使用 URL 安全字母表的文本。
|
|
56
|
-
* @throws 缺少 Encoding API 时抛出 `Error`。
|
|
57
|
-
*/
|
|
58
|
-
export declare function encodeBase64Url(value: string): string;
|
|
59
|
-
/**
|
|
60
|
-
* 将 Base64URL 解码为 UTF-8 文本。
|
|
61
|
-
*
|
|
62
|
-
* @param value - 带填充或无填充的 Base64URL 文本。
|
|
63
|
-
* @returns 可直接使用或显式调用 `.parseJson<Value>()` 的原始 Unicode 字符串。
|
|
64
|
-
* @throws Base64URL 或 UTF-8 非法时抛出 `TypeError`;缺少 Encoding API 时抛出 `Error`。
|
|
65
|
-
*/
|
|
66
|
-
export declare function decodeBase64Url(value: string): DecodedText;
|
|
67
|
-
/**
|
|
68
|
-
* 把 Latin-1 文本编码为标准 Base64。
|
|
69
|
-
*
|
|
70
|
-
* @param value - 每个 UTF-16 码元都必须位于 0–255 的文本。
|
|
71
|
-
* @returns 带标准填充的 Base64 文本。
|
|
72
|
-
* @throws `TypeError` 当文本包含 Latin-1 范围外的码元。
|
|
73
|
-
*/
|
|
74
|
-
export declare function encodeLatin1Base64(value: string): string;
|
|
75
|
-
/**
|
|
76
|
-
* 把标准 Base64 解码为 Latin-1 文本。
|
|
77
|
-
*
|
|
78
|
-
* @param value - 标准 Base64 文本;允许 ASCII 空白和省略尾部填充。
|
|
79
|
-
* @returns 可直接使用或显式调用 `.parseJson<Value>()` 的 Latin-1 原始字符串。
|
|
80
|
-
* @throws `TypeError` 当 Base64 格式或尾部位非法。
|
|
81
|
-
*/
|
|
82
|
-
export declare function decodeLatin1Base64(value: string): DecodedText;
|
|
83
|
-
/**
|
|
84
|
-
* 使用固定字典和随机前缀编码文本。
|
|
85
|
-
*
|
|
86
|
-
* @remarks 给定相同的 6 字符前缀时,默认输出与旧有效载荷逐字符兼容。旧字典在 101–124 字符载荷中引用越界;这里复制末字符作为单字符回退,
|
|
87
|
-
* 使旧删除字典流程仍能解码。传入 `0` 会同时关闭随机前缀与字典插入。
|
|
88
|
-
* 该格式只是可逆编码,不提供加密、完整性或身份认证。
|
|
89
|
-
* @param value - 任意可由 `encodeURIComponent` 处理的 Unicode 文本。
|
|
90
|
-
* @param prefixLength - 随机字母前缀长度;默认 `6`。
|
|
91
|
-
* @returns 带随机前缀和兼容字典字符的 Base64 文本;空输入返回空字符串。
|
|
92
|
-
* @throws `RangeError` 当前缀长度不是非负安全整数;输入包含孤立代理项时保留平台错误。
|
|
93
|
-
*/
|
|
94
|
-
export declare function encodeSecureBase64(value: string, prefixLength?: number): string;
|
|
95
|
-
/**
|
|
96
|
-
* 解码 {@link encodeSecureBase64} 生成的 SecureBase64 兼容格式。
|
|
97
|
-
*
|
|
98
|
-
* @param value - SecureBase64 文本;必须使用与编码时相同的前缀长度。
|
|
99
|
-
* @param prefixLength - 需要移除的前缀长度;默认 `6`,传入 `0` 时不移除字典字符。
|
|
100
|
-
* @returns 可直接使用或显式调用 `.parseJson<Value>()` 的原始 Unicode 字符串;空输入返回空字符串。
|
|
101
|
-
* @throws `RangeError` 当前缀长度不是非负安全整数;载荷、Base64 或 URI 编码非法时抛出 `TypeError` 或 `URIError`。
|
|
102
|
-
*/
|
|
103
|
-
export declare function decodeSecureBase64(value: string, prefixLength?: number): DecodedText;
|
|
104
|
-
//#endregion
|
|
105
|
-
export type { DecodedText };
|
|
106
|
-
//# sourceMappingURL=index.d.mts.map
|
package/dist/color/index.d.mts
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
//#region src/color/index.d.ts
|
|
2
|
-
/** 0 至 255 范围的 RGB 颜色。 */
|
|
3
|
-
export interface RgbColor {
|
|
4
|
-
/** 蓝色通道;必须是闭区间 `[0, 255]` 内的有限数,格式化时舍入到整数。 */
|
|
5
|
-
blue: number;
|
|
6
|
-
/** 绿色通道;必须是闭区间 `[0, 255]` 内的有限数,格式化时舍入到整数。 */
|
|
7
|
-
green: number;
|
|
8
|
-
/** 红色通道;必须是闭区间 `[0, 255]` 内的有限数,格式化时舍入到整数。 */
|
|
9
|
-
red: number;
|
|
10
|
-
}
|
|
11
|
-
/** 带 0 至 1 Alpha 通道的 RGB 颜色。 */
|
|
12
|
-
export interface RgbaColor extends RgbColor {
|
|
13
|
-
/** 不透明度;必须是闭区间 `[0, 1]` 内的有限数,`0` 完全透明,`1` 完全不透明。 */
|
|
14
|
-
alpha: number;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* 解析可带可不带 `#` 的 `rgb`、`rgba`、`rrggbb` 或 `rrggbbaa`。
|
|
18
|
-
*
|
|
19
|
-
* @param value - 十六进制颜色文本。
|
|
20
|
-
* @returns 标准化的 RGBA 对象;省略 Alpha 时为 1。
|
|
21
|
-
* @throws 输入非法时抛出 `TypeError`。
|
|
22
|
-
*/
|
|
23
|
-
export declare function parseHexColor(value: string): RgbaColor;
|
|
24
|
-
/**
|
|
25
|
-
* 把 RGB 或 RGBA 对象格式化为小写十六进制颜色。
|
|
26
|
-
*
|
|
27
|
-
* @param color - 颜色通道;RGB 会四舍五入到最近整数。
|
|
28
|
-
* @param includeAlpha - 是否输出 Alpha;默认只在传入 Alpha 且小于 1 时输出。
|
|
29
|
-
* @returns 小写 `#rrggbb` 或 `#rrggbbaa` 文本。
|
|
30
|
-
* @throws 通道或 Alpha 非法时抛出 `RangeError`。
|
|
31
|
-
*/
|
|
32
|
-
export declare function formatHexColor(color: RgbColor | RgbaColor, includeAlpha?: boolean): string;
|
|
33
|
-
/**
|
|
34
|
-
* 线性混合两种十六进制颜色,包括 Alpha 通道。
|
|
35
|
-
*
|
|
36
|
-
* @param first - `amount = 0` 时的颜色。
|
|
37
|
-
* @param second - `amount = 1` 时的颜色。
|
|
38
|
-
* @param amount - 0 至 1 的混合比例。
|
|
39
|
-
* @returns 小写十六进制颜色;任一输入含透明度时保留 Alpha。
|
|
40
|
-
* @throws 颜色非法时抛出 `TypeError`;比例非法时抛出 `RangeError`。
|
|
41
|
-
*/
|
|
42
|
-
export declare function mixHexColors(first: string, second: string, amount: number): string;
|
|
43
|
-
/**
|
|
44
|
-
* 按比例向黑色混合。
|
|
45
|
-
*
|
|
46
|
-
* @param color - 合法十六进制颜色。
|
|
47
|
-
* @param amount - 0 至 1 的混合比例。
|
|
48
|
-
* @returns 混入黑色后的十六进制颜色;参数与异常语义见 {@link mixHexColors}。
|
|
49
|
-
*/
|
|
50
|
-
export declare function mixHexColorWithBlack(color: string, amount: number): string;
|
|
51
|
-
/**
|
|
52
|
-
* 按比例向白色混合。
|
|
53
|
-
*
|
|
54
|
-
* @param color - 合法十六进制颜色。
|
|
55
|
-
* @param amount - 0 至 1 的混合比例。
|
|
56
|
-
* @returns 混入白色后的十六进制颜色;参数与异常语义见 {@link mixHexColors}。
|
|
57
|
-
*/
|
|
58
|
-
export declare function mixHexColorWithWhite(color: string, amount: number): string;
|
|
59
|
-
/**
|
|
60
|
-
* 计算 WCAG sRGB 相对亮度。
|
|
61
|
-
*
|
|
62
|
-
* @remarks Alpha 通道不会参与计算;半透明颜色应先与实际背景混合。
|
|
63
|
-
* @param color - 合法十六进制颜色。
|
|
64
|
-
* @returns 0 至 1 的相对亮度。
|
|
65
|
-
* @throws 输入非法时抛出 `TypeError`。
|
|
66
|
-
*/
|
|
67
|
-
export declare function relativeLuminance(color: string): number;
|
|
68
|
-
/**
|
|
69
|
-
* 计算两种不透明颜色的 WCAG 对比度,范围 1 至 21。
|
|
70
|
-
*
|
|
71
|
-
* @remarks 返回比值本身,不代表特定字号或 WCAG 等级必然通过。
|
|
72
|
-
* @param first - 第一种十六进制颜色。
|
|
73
|
-
* @param second - 第二种十六进制颜色。
|
|
74
|
-
* @returns 较亮颜色与较暗颜色的对比度。
|
|
75
|
-
* @throws 输入非法时抛出 `TypeError`。
|
|
76
|
-
*/
|
|
77
|
-
export declare function contrastRatio(first: string, second: string): number;
|
|
78
|
-
/**
|
|
79
|
-
* 从两个候选颜色中选择与背景对比度更高的一项。
|
|
80
|
-
*
|
|
81
|
-
* @param background - 实际不透明背景色。
|
|
82
|
-
* @param first - 第一候选,默认黑色。
|
|
83
|
-
* @param second - 第二候选,默认白色。
|
|
84
|
-
* @returns 对比度较高的原始候选字符串;相同时返回 `first`。
|
|
85
|
-
* @throws 任一颜色非法时抛出 `TypeError`。
|
|
86
|
-
*/
|
|
87
|
-
export declare function pickHigherContrastColor(background: string, first?: string, second?: string): string;
|
|
88
|
-
//#endregion
|
|
89
|
-
//# sourceMappingURL=index.d.mts.map
|
package/dist/crypto/index.d.mts
DELETED
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
import { DecodedText } from "../internal/text.mjs";
|
|
2
|
-
import "crypto-js/pad-ansix923.js";
|
|
3
|
-
//#region src/crypto/index.d.ts
|
|
4
|
-
/** AES 分组密码模式;与 .NET `CipherMode.CBC` 和 `CipherMode.ECB` 对应。 */
|
|
5
|
-
export type AesCipherMode = "CBC" | "ECB";
|
|
6
|
-
/** AES 填充模式;与 .NET `PaddingMode` 中可由 CryptoJS 互操作的成员对应。 */
|
|
7
|
-
export type AesPaddingMode = "None" | "PKCS7" | "Zeros" | "ANSIX923" | "ISO10126";
|
|
8
|
-
/** Web Crypto 导出的 PEM 公私钥对。 */
|
|
9
|
-
export interface PemKeyPair {
|
|
10
|
-
/** 未加密的 PKCS#8 PEM 私钥,包含标准 `PRIVATE KEY` 头尾和 64 字符换行。 */
|
|
11
|
-
privateKey: string;
|
|
12
|
-
/** SubjectPublicKeyInfo PEM 公钥,包含标准 `PUBLIC KEY` 头尾和 64 字符换行。 */
|
|
13
|
-
publicKey: string;
|
|
14
|
-
}
|
|
15
|
-
/** 本模块支持的 Web Crypto 椭圆曲线。 */
|
|
16
|
-
export type EcNamedCurve = "P-256" | "P-384" | "P-521";
|
|
17
|
-
/**
|
|
18
|
-
* 生成随机字节。
|
|
19
|
-
*
|
|
20
|
-
* @remarks 优先使用 Web Crypto;平台缺少安全随机能力时回退到 `Math.random()`。
|
|
21
|
-
* @param length - 0 至 65,536 的安全整数。
|
|
22
|
-
* @returns 新建的 `Uint8Array`。
|
|
23
|
-
* @throws 参数非法时抛出 `RangeError`。
|
|
24
|
-
*/
|
|
25
|
-
export declare function GenerateRandomBytes(length: number): Uint8Array;
|
|
26
|
-
/**
|
|
27
|
-
* 以不提前退出的方式比较两个字节数组。
|
|
28
|
-
*
|
|
29
|
-
* @remarks JavaScript 引擎不保证严格常量时间;该函数只避免显式短路,不能替代服务端
|
|
30
|
-
* 密码学库提供的 timing-safe primitive。长度是否相同仍属于可观察信息。
|
|
31
|
-
* @param left - 第一字节序列。
|
|
32
|
-
* @param right - 第二字节序列。
|
|
33
|
-
* @returns 长度和每个字节均相同时返回 `true`。
|
|
34
|
-
*/
|
|
35
|
-
export declare function FixedTimeEquals(left: Uint8Array, right: Uint8Array): boolean;
|
|
36
|
-
/**
|
|
37
|
-
* 计算 MD5 摘要并返回小写十六进制文本。
|
|
38
|
-
*
|
|
39
|
-
* @remarks MD5 仅用于非安全的普通校验,不得用于密码、签名或抗碰撞场景。
|
|
40
|
-
* @param value - UTF-8 文本。
|
|
41
|
-
* @returns 32 字符小写十六进制摘要。
|
|
42
|
-
*/
|
|
43
|
-
export declare function MD5Encrypt(value: string): string;
|
|
44
|
-
/**
|
|
45
|
-
* 计算 SHA-1 摘要并返回大写十六进制文本。
|
|
46
|
-
*
|
|
47
|
-
* @remarks SHA-1 仅用于非安全的普通校验,不得用于密码、签名或抗碰撞场景。
|
|
48
|
-
* @param value - UTF-8 文本。
|
|
49
|
-
* @returns 40 字符大写十六进制摘要。
|
|
50
|
-
*/
|
|
51
|
-
export declare function SHA1Encrypt(value: string): string;
|
|
52
|
-
/**
|
|
53
|
-
* 计算 SHA-256 摘要。
|
|
54
|
-
*
|
|
55
|
-
* @remarks SHA-256 是快速摘要,不适合直接存储或校验密码。
|
|
56
|
-
* @param value - UTF-8 字符串或原始字节。
|
|
57
|
-
* @returns 32 字节摘要。
|
|
58
|
-
* @throws 缺少 Web Crypto 或 Encoding API 时抛出 `Error`。
|
|
59
|
-
*/
|
|
60
|
-
export declare function SHA256Bytes(value: string): Promise<Uint8Array>;
|
|
61
|
-
/**
|
|
62
|
-
* 计算 SHA-256 并格式化为十六进制。
|
|
63
|
-
*
|
|
64
|
-
* @param value - UTF-8 字符串或原始字节。
|
|
65
|
-
* @returns 64 字符大写十六进制文本。
|
|
66
|
-
* @throws 缺少 Web Crypto 或 Encoding API 时抛出 `Error`。
|
|
67
|
-
*/
|
|
68
|
-
export declare function SHA256Encrypt(value: string): Promise<string>;
|
|
69
|
-
/**
|
|
70
|
-
* 计算 SHA-384 摘要。
|
|
71
|
-
*
|
|
72
|
-
* @param value - UTF-8 文本或原始字节。
|
|
73
|
-
* @returns 48 字节摘要。
|
|
74
|
-
*/
|
|
75
|
-
export declare function SHA384Bytes(value: string): Promise<Uint8Array>;
|
|
76
|
-
/**
|
|
77
|
-
* 计算 SHA-384 并格式化为十六进制文本。
|
|
78
|
-
*
|
|
79
|
-
* @param value - UTF-8 文本或原始字节。
|
|
80
|
-
* @returns 96 个大写十六进制字符组成的摘要。
|
|
81
|
-
*/
|
|
82
|
-
export declare function SHA384Encrypt(value: string): Promise<string>;
|
|
83
|
-
/**
|
|
84
|
-
* 计算 SHA-512 摘要。
|
|
85
|
-
*
|
|
86
|
-
* @param value - UTF-8 文本或原始字节。
|
|
87
|
-
* @returns 64 字节摘要。
|
|
88
|
-
*/
|
|
89
|
-
export declare function SHA512Bytes(value: string): Promise<Uint8Array>;
|
|
90
|
-
/**
|
|
91
|
-
* 计算 SHA-512 并格式化为十六进制文本。
|
|
92
|
-
*
|
|
93
|
-
* @param value - UTF-8 文本或原始字节。
|
|
94
|
-
* @returns 128 个大写十六进制字符组成的摘要。
|
|
95
|
-
*/
|
|
96
|
-
export declare function SHA512Encrypt(value: string): Promise<string>;
|
|
97
|
-
/**
|
|
98
|
-
* 使用 HMAC-SHA-256 认证文本,并返回十六进制标签。
|
|
99
|
-
*
|
|
100
|
-
* @param value - 要认证的 UTF-8 文本或原始字节。
|
|
101
|
-
* @param key - 非空的 UTF-8 文本密钥或原始密钥字节。
|
|
102
|
-
* @returns 64 个小写十六进制字符组成的认证标签。
|
|
103
|
-
*/
|
|
104
|
-
export declare function HMACSHA256Encrypt(value: string, key: string): Promise<string>;
|
|
105
|
-
/**
|
|
106
|
-
* 使用 HMAC-SHA-384 认证文本或字节,并返回十六进制标签。
|
|
107
|
-
*
|
|
108
|
-
* @param value - 要认证的 UTF-8 文本或原始字节。
|
|
109
|
-
* @param key - 非空的 UTF-8 文本密钥或原始密钥字节。
|
|
110
|
-
* @returns 96 个小写十六进制字符组成的认证标签。
|
|
111
|
-
*/
|
|
112
|
-
export declare function HMACSHA384Encrypt(value: string, key: string): Promise<string>;
|
|
113
|
-
/**
|
|
114
|
-
* 使用 HMAC-SHA-512 认证文本或字节,并返回十六进制标签。
|
|
115
|
-
*
|
|
116
|
-
* @param value - 要认证的 UTF-8 文本或原始字节。
|
|
117
|
-
* @param key - 非空的 UTF-8 文本密钥或原始密钥字节。
|
|
118
|
-
* @returns 128 个小写十六进制字符组成的认证标签。
|
|
119
|
-
*/
|
|
120
|
-
export declare function HMACSHA512Encrypt(value: string, key: string): Promise<string>;
|
|
121
|
-
/**
|
|
122
|
-
* 使用 PBKDF2-HMAC-SHA-256 从密码派生密钥。
|
|
123
|
-
*
|
|
124
|
-
* @param password - 1 至 1,024 UTF-8 字节的密码。
|
|
125
|
-
* @param salt - 至少 8 字节的盐。
|
|
126
|
-
* @param iterations - 迭代次数,范围为 100,000 至 5,000,000。
|
|
127
|
-
* @param outputLength - 输出长度,范围为 1 至 1,024 字节。
|
|
128
|
-
* @returns 指定长度的派生密钥。
|
|
129
|
-
* @throws 参数超过协议边界时抛出 `TypeError` 或 `RangeError`。
|
|
130
|
-
*/
|
|
131
|
-
export declare function PBKDF2SHA256(password: string, salt: Uint8Array, iterations?: number, outputLength?: number): Promise<Uint8Array>;
|
|
132
|
-
/**
|
|
133
|
-
* 生成可持久化的随机盐 PBKDF2-HMAC-SHA-256 密码哈希。
|
|
134
|
-
*
|
|
135
|
-
* @param password - 1 至 1,024 UTF-8 字节的密码。
|
|
136
|
-
* @param iterations - 迭代次数,范围为 100,000 至 5,000,000。
|
|
137
|
-
* @returns 包含版本、迭代次数、16 字节随机盐和 32 字节派生密钥的自描述字符串。
|
|
138
|
-
*/
|
|
139
|
-
export declare function HashPasswordPBKDF2SHA256(password: string, iterations?: number): Promise<string>;
|
|
140
|
-
/**
|
|
141
|
-
* 验证 {@link HashPasswordPBKDF2SHA256} 生成的密码哈希。
|
|
142
|
-
*
|
|
143
|
-
* @param password - 要验证的密码。
|
|
144
|
-
* @param passwordHash - 自描述的 PBKDF2-HMAC-SHA-256 密码哈希。
|
|
145
|
-
* @returns 格式有效且密码匹配时返回 `true`;格式无效或密码错误时返回 `false`。
|
|
146
|
-
*/
|
|
147
|
-
export declare function VerifyPasswordPBKDF2SHA256(password: string, passwordHash: string): Promise<boolean>;
|
|
148
|
-
/**
|
|
149
|
-
* 使用 RFC 5869 HKDF-SHA-256 派生上下文隔离的密钥材料。
|
|
150
|
-
*
|
|
151
|
-
* @param inputKeyMaterial - 输入密钥材料,例如 ECDH 原始共享秘密。
|
|
152
|
-
* @param salt - 可选盐;空值按 RFC 5869 的零盐语义处理。
|
|
153
|
-
* @param info - 应用、协议和密钥用途上下文。
|
|
154
|
-
* @param outputLength - 输出长度,范围为 1 至 8,160 字节。
|
|
155
|
-
* @returns 与 `salt` 和 `info` 绑定的派生密钥。
|
|
156
|
-
*/
|
|
157
|
-
export declare function HKDFSHA256(inputKeyMaterial: Uint8Array, salt?: Uint8Array, info?: Uint8Array, outputLength?: number): Promise<Uint8Array>;
|
|
158
|
-
/**
|
|
159
|
-
* 使用 AES-256 对 UTF-8 文本进行分组加密。
|
|
160
|
-
*
|
|
161
|
-
* @remarks 密钥和 IV 分别补字符 `f` 或截断到 32、16 个 UTF-16 Code Unit,与 .NET
|
|
162
|
-
* `AESEncrypt` 保持一致。CBC/ECB 不提供完整性认证,密文可能被篡改。
|
|
163
|
-
* @param dataStr - 要加密的 UTF-8 文本;空白文本返回 `null`。
|
|
164
|
-
* @param key - 非空白的密钥文本。
|
|
165
|
-
* @param vector - 非空白的初始化向量文本;ECB 模式仍要求传入该参数以对齐 .NET 签名。
|
|
166
|
-
* @param cipherMode - AES 分组模式,默认 `CBC`。
|
|
167
|
-
* @param paddingMode - AES 填充模式,默认 `PKCS7`。
|
|
168
|
-
* @returns Base64 密文;输入、密钥或 IV 为空白时返回 `null`。
|
|
169
|
-
* @throws 模式或填充不受支持时抛出 `RangeError`。
|
|
170
|
-
*/
|
|
171
|
-
export declare function AESEncrypt(dataStr: string, key: string, vector: string, cipherMode?: AesCipherMode, paddingMode?: AesPaddingMode): string | null;
|
|
172
|
-
/**
|
|
173
|
-
* 使用 AES-256 解密 Base64 分组密文。
|
|
174
|
-
*
|
|
175
|
-
* @remarks 参数归一化规则与 {@link AESEncrypt} 以及 .NET `AESDecrypt` 相同。
|
|
176
|
-
* @param dataStr - Base64 密文;空白文本返回 `null`。
|
|
177
|
-
* @param key - 加密时使用的密钥文本。
|
|
178
|
-
* @param vector - 加密时使用的初始化向量文本。
|
|
179
|
-
* @param cipherMode - AES 分组模式,默认 `CBC`。
|
|
180
|
-
* @param paddingMode - AES 填充模式,默认 `PKCS7`。
|
|
181
|
-
* @returns 可直接使用或显式调用 `.parseJson<Value>()` 的原始 UTF-8 字符串;输入、密钥或 IV 为空白时返回 `null`。
|
|
182
|
-
* @throws 模式、填充、Base64、密钥或密文无效时抛出错误。
|
|
183
|
-
*/
|
|
184
|
-
export declare function AESDecrypt(dataStr: string, key: string, vector: string, cipherMode?: AesCipherMode, paddingMode?: AesPaddingMode): DecodedText | null;
|
|
185
|
-
/**
|
|
186
|
-
* 使用 SHA-256 归一化文本密钥,再以 AES-256-GCM 认证加密 UTF-8 文本。
|
|
187
|
-
*
|
|
188
|
-
* @remarks 输出与 .NET `AESEncryptAuthenticated` 的 v1 Base64 二进制载荷完全一致。
|
|
189
|
-
* @param plaintext - 要加密的 UTF-8 文本。
|
|
190
|
-
* @param key - 非空的 UTF-8 文本密钥;内部归一化为 32 字节 SHA-256 摘要。
|
|
191
|
-
* @returns Base64 编码的 v1 AES-GCM 认证载荷。
|
|
192
|
-
* @throws 密钥为空或运行时缺少 Web Crypto 时抛出错误。
|
|
193
|
-
*/
|
|
194
|
-
export declare function AESEncryptAuthenticated(plaintext: string, key: string): Promise<string>;
|
|
195
|
-
/**
|
|
196
|
-
* 解密并认证 .NET `AESEncryptAuthenticated` 或 {@link AESEncryptAuthenticated} 生成的载荷。
|
|
197
|
-
*
|
|
198
|
-
* @param payload - Base64 编码的 v1 AES-GCM 二进制载荷。
|
|
199
|
-
* @param key - 加密时使用的非空 UTF-8 文本密钥。
|
|
200
|
-
* @returns 可直接使用或显式调用 `.parseJson<Value>()` 的原始 UTF-8 字符串。
|
|
201
|
-
* @throws 载荷格式无效、密钥错误或认证失败时抛出错误。
|
|
202
|
-
*/
|
|
203
|
-
export declare function AESDecryptAuthenticated(payload: string, key: string): Promise<DecodedText>;
|
|
204
|
-
/**
|
|
205
|
-
* 使用 PBKDF2-HMAC-SHA-256 派生密钥,再以 AES-256-GCM 认证加密 UTF-8 文本。
|
|
206
|
-
*
|
|
207
|
-
* @remarks 每次调用生成独立 16 字节盐与 12 字节 IV。输出是与 .NET `AESEncryptWithPassword`
|
|
208
|
-
* 一致的 v1 自描述载荷,不应由业务代码手动拆分或修改。密码加密不替代密钥管理。
|
|
209
|
-
* @param plaintext - 原始文本,不进行 JSON 推断;UTF-8 编码后最大 8 MiB。
|
|
210
|
-
* @param password - 1 至 1024 UTF-8 字节的秘密口令。
|
|
211
|
-
* @param iterations - PBKDF2 工作因子,默认 600,000。
|
|
212
|
-
* @returns 认证密文字符串;相同输入每次产生不同结果。
|
|
213
|
-
* @throws 口令非法时抛出 `TypeError` 或 `RangeError`;明文过大时抛出 `RangeError`;
|
|
214
|
-
* 运行时缺少 Web Crypto 或 Encoding API 时抛出 `Error`。
|
|
215
|
-
*/
|
|
216
|
-
export declare function AESEncryptWithPassword(plaintext: string, password: string, iterations?: number): Promise<string>;
|
|
217
|
-
/**
|
|
218
|
-
* 解密 {@link AESEncryptWithPassword} 生成的 v1 认证载荷。
|
|
219
|
-
*
|
|
220
|
-
* @param payload - 未修改的 v1 载荷,最大约 16 MiB 文本。
|
|
221
|
-
* @param password - 加密时使用的口令。
|
|
222
|
-
* @returns 可直接使用或显式调用 `.parseJson<Value>()` 的原始 UTF-8 字符串。
|
|
223
|
-
* @throws 格式或字段非法时抛出 `TypeError`,载荷过大时抛出 `RangeError`,认证或密码
|
|
224
|
-
* 失败及缺少平台能力时抛出 `Error`。
|
|
225
|
-
*/
|
|
226
|
-
export declare function AESDecryptWithPassword(payload: string, password: string): Promise<DecodedText>;
|
|
227
|
-
/**
|
|
228
|
-
* 生成可供 RSA-OAEP/SHA-256 与 RSA-PSS/SHA-256 共用的 PEM 密钥对。
|
|
229
|
-
*
|
|
230
|
-
* @param modulusLength - RSA 模数位数,默认 2,048;必须是不小于 2,048 的 256 倍数。
|
|
231
|
-
* @returns 未加密 PKCS#8 私钥和 SubjectPublicKeyInfo 公钥组成的 PEM 密钥对。
|
|
232
|
-
* @throws 模数小于 2,048 或不是 256 的倍数时抛出 `RangeError`。
|
|
233
|
-
*/
|
|
234
|
-
export declare function GenerateRSAKeyPair(modulusLength?: number): Promise<PemKeyPair>;
|
|
235
|
-
/**
|
|
236
|
-
* 使用 RSA-OAEP/SHA-256 公钥加密 UTF-8 文本。
|
|
237
|
-
*
|
|
238
|
-
* @param plaintext - 要加密的 UTF-8 文本;长度必须满足 RSA-OAEP 模数限制。
|
|
239
|
-
* @param publicKeyPem - SubjectPublicKeyInfo PEM 公钥。
|
|
240
|
-
* @returns Base64 编码的 RSA 密文。
|
|
241
|
-
* @throws 公钥格式无效或明文超过 RSA-OAEP 容量时抛出错误。
|
|
242
|
-
*/
|
|
243
|
-
export declare function RSAEncryptOAEP(plaintext: string, publicKeyPem: string): Promise<string>;
|
|
244
|
-
/**
|
|
245
|
-
* 使用 RSA-OAEP/SHA-256 私钥解密 Base64 密文。
|
|
246
|
-
*
|
|
247
|
-
* @param ciphertext - Base64 编码的 RSA 密文。
|
|
248
|
-
* @param privateKeyPem - 未加密的 PKCS#8 PEM 私钥。
|
|
249
|
-
* @returns 可直接使用或显式调用 `.parseJson<Value>()` 的原始 UTF-8 字符串。
|
|
250
|
-
* @throws 私钥、Base64 或密文无效时抛出错误。
|
|
251
|
-
*/
|
|
252
|
-
export declare function RSADecryptOAEP(ciphertext: string, privateKeyPem: string): Promise<DecodedText>;
|
|
253
|
-
/**
|
|
254
|
-
* 使用 RSA-PSS/SHA-256 私钥签名文本或字节。
|
|
255
|
-
*
|
|
256
|
-
* @param value - 要签名的 UTF-8 文本或原始字节。
|
|
257
|
-
* @param privateKeyPem - 未加密的 PKCS#8 PEM 私钥。
|
|
258
|
-
* @returns Base64 编码的 RSA-PSS 签名;盐长度固定为 32 字节。
|
|
259
|
-
* @throws 私钥格式无效或签名失败时抛出错误。
|
|
260
|
-
*/
|
|
261
|
-
export declare function RSASignPSS(value: string, privateKeyPem: string): Promise<string>;
|
|
262
|
-
/**
|
|
263
|
-
* 使用 RSA-PSS/SHA-256 公钥验证 Base64 签名。
|
|
264
|
-
*
|
|
265
|
-
* @param value - 签名时使用的 UTF-8 文本或原始字节。
|
|
266
|
-
* @param signature - Base64 编码的 RSA-PSS 签名。
|
|
267
|
-
* @param publicKeyPem - SubjectPublicKeyInfo PEM 公钥。
|
|
268
|
-
* @returns 签名与内容、公钥匹配时返回 `true`。
|
|
269
|
-
* @throws 公钥或 Base64 格式无效时抛出错误。
|
|
270
|
-
*/
|
|
271
|
-
export declare function RSAVerifyPSS(value: string, signature: string, publicKeyPem: string): Promise<boolean>;
|
|
272
|
-
/**
|
|
273
|
-
* 生成 ECDSA PEM 签名密钥对。
|
|
274
|
-
*
|
|
275
|
-
* @param namedCurve - NIST 曲线:P-256、P-384 或 P-521。
|
|
276
|
-
* @returns 未加密 PKCS#8 私钥和 SubjectPublicKeyInfo 公钥组成的 PEM 密钥对。
|
|
277
|
-
*/
|
|
278
|
-
export declare function GenerateECDSAKeyPair(namedCurve?: EcNamedCurve): Promise<PemKeyPair>;
|
|
279
|
-
/**
|
|
280
|
-
* 使用 ECDSA 私钥签名文本或字节。
|
|
281
|
-
*
|
|
282
|
-
* @remarks Web Crypto 返回 IEEE P1363 固定字段拼接格式,与 .NET 实现一致。
|
|
283
|
-
* @param value - 要签名的 UTF-8 文本或原始字节。
|
|
284
|
-
* @param privateKeyPem - 未加密的 EC PKCS#8 PEM 私钥。
|
|
285
|
-
* @param namedCurve - 私钥使用的 NIST 曲线。
|
|
286
|
-
* @returns Base64 编码的 IEEE P1363 ECDSA 签名。
|
|
287
|
-
*/
|
|
288
|
-
export declare function ECDSASign(value: string, privateKeyPem: string, namedCurve?: EcNamedCurve): Promise<string>;
|
|
289
|
-
/**
|
|
290
|
-
* 使用 ECDSA 公钥验证 Base64 签名。
|
|
291
|
-
*
|
|
292
|
-
* @param value - 签名时使用的 UTF-8 文本或原始字节。
|
|
293
|
-
* @param signature - Base64 编码的 IEEE P1363 ECDSA 签名。
|
|
294
|
-
* @param publicKeyPem - EC SubjectPublicKeyInfo PEM 公钥。
|
|
295
|
-
* @param namedCurve - 公钥使用的 NIST 曲线。
|
|
296
|
-
* @returns 签名与内容、公钥和曲线匹配时返回 `true`。
|
|
297
|
-
*/
|
|
298
|
-
export declare function ECDSAVerify(value: string, signature: string, publicKeyPem: string, namedCurve?: EcNamedCurve): Promise<boolean>;
|
|
299
|
-
/**
|
|
300
|
-
* 生成 ECDH PEM 密钥协商密钥对。
|
|
301
|
-
*
|
|
302
|
-
* @param namedCurve - NIST 曲线:P-256、P-384 或 P-521。
|
|
303
|
-
* @returns 未加密 PKCS#8 私钥和 SubjectPublicKeyInfo 公钥组成的 PEM 密钥对。
|
|
304
|
-
*/
|
|
305
|
-
export declare function GenerateECDHKeyPair(namedCurve?: EcNamedCurve): Promise<PemKeyPair>;
|
|
306
|
-
/**
|
|
307
|
-
* 使用本方 ECDH 私钥与对方 ECDH 公钥派生共享秘密。
|
|
308
|
-
*
|
|
309
|
-
* @remarks 返回值仍需经过合适的 KDF 后才能作为对称密钥,不应直接长期存储。
|
|
310
|
-
* @param privateKeyPem - 本方未加密的 EC PKCS#8 PEM 私钥。
|
|
311
|
-
* @param publicKeyPem - 对方的 EC SubjectPublicKeyInfo PEM 公钥。
|
|
312
|
-
* @param namedCurve - 双方密钥使用的 NIST 曲线。
|
|
313
|
-
* @returns 曲线字段长度的原始 ECDH 共享秘密。
|
|
314
|
-
*/
|
|
315
|
-
export declare function DeriveECDHSecret(privateKeyPem: string, publicKeyPem: string, namedCurve?: EcNamedCurve): Promise<Uint8Array>;
|
|
316
|
-
/**
|
|
317
|
-
* 使用 ECDH 后以 SHA-256 派生共享密钥。
|
|
318
|
-
*
|
|
319
|
-
* @remarks 相比直接使用原始共享秘密,此入口与 .NET `DeriveECDHKeySHA256` 一致并固定输出 32 字节。
|
|
320
|
-
* @param privateKeyPem - 本方未加密的 EC PKCS#8 PEM 私钥。
|
|
321
|
-
* @param publicKeyPem - 对方的 EC SubjectPublicKeyInfo PEM 公钥。
|
|
322
|
-
* @param namedCurve - 双方密钥使用的 NIST 曲线。
|
|
323
|
-
* @returns 32 字节共享密钥。
|
|
324
|
-
*/
|
|
325
|
-
export declare function DeriveECDHKeySHA256(privateKeyPem: string, publicKeyPem: string, namedCurve?: EcNamedCurve): Promise<Uint8Array>;
|
|
326
|
-
//#endregion
|
|
327
|
-
//# sourceMappingURL=index.d.mts.map
|