@maiyunnet/kebab 3.2.7 → 3.2.8

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/index.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * --- 本文件用来定义每个目录实体地址的常量 ---
6
6
  */
7
7
  /** --- 当前系统版本号 --- */
8
- export declare const VER = "3.2.7";
8
+ export declare const VER = "3.2.8";
9
9
  /** --- 框架根目录,以 / 结尾 --- */
10
10
  export declare const ROOT_PATH: string;
11
11
  export declare const LIB_PATH: string;
package/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * --- 本文件用来定义每个目录实体地址的常量 ---
7
7
  */
8
8
  /** --- 当前系统版本号 --- */
9
- export const VER = '3.2.7';
9
+ export const VER = '3.2.8';
10
10
  // --- 服务端用的路径 ---
11
11
  const imu = decodeURIComponent(import.meta.url).replace('file://', '').replace(/^\/(\w:)/, '$1');
12
12
  /** --- /xxx/xxx --- */
package/lib/crypto.d.ts CHANGED
@@ -58,9 +58,13 @@ export declare function publicDecrypt(key: crypto.RsaPublicKey | crypto.RsaPriva
58
58
  * @param buffer 数据
59
59
  */
60
60
  export declare function privateDecrypt(key: crypto.RsaPrivateKey | crypto.KeyLike, buffer: NodeJS.ArrayBufferView | string): Buffer;
61
+ /** --- 勿使用,无 iv 默认,但勿使用 --- */
61
62
  export declare const AES_256_ECB = "aes-256-ecb";
63
+ /** --- 一般不用,兼容性场景下用 --- */
62
64
  export declare const AES_256_CBC = "aes-256-cbc";
63
- export declare const AES_256_CFB = "aes-256-cfb";
65
+ /** --- 设置 iv 会自动切换为 CTR,流式下使用,非流直接使用 GCM --- */
66
+ export declare const AES_256_CTR = "aes-256-ctr";
67
+ /** --- 非流直接使用 GCM --- */
64
68
  export declare const AES_256_GCM = "aes-256-gcm";
65
69
  export declare const SM4_ECB = "sm4-ecb";
66
70
  export declare const SM4_CBC = "sm4-cbc";
@@ -69,7 +73,7 @@ export declare const SM4_CFB = "sm4-cfb";
69
73
  * --- cipher 加密,强烈不建议使用 AES_256_ECB ---
70
74
  * @param original 原始字符串
71
75
  * @param key 密钥 32 个英文字母和数字
72
- * @param iv 向量 16(CFB) 或 12(GCM) 个英文字母和数字
76
+ * @param iv 向量 16(CTR) 或 12(GCM) 个英文字母和数字
73
77
  * @param method 加密方法
74
78
  */
75
79
  export declare function cipherEncrypt(original: string | Buffer, key: crypto.CipherKey, iv?: string, method?: string, output?: 'base64' | 'buffer'): string | Buffer | false;
@@ -83,7 +87,7 @@ export declare function sm4Encrypt(original: string | Buffer, key: crypto.Cipher
83
87
  * --- cipher 解密 ---
84
88
  * @param encrypt 需解密的字符串
85
89
  * @param key 密钥 32 个英文字母和数字
86
- * @param iv 向量 16(CFB) 或 12(GCM) 个英文字母和数字
90
+ * @param iv 向量 16(CTR) 或 12(GCM) 个英文字母和数字
87
91
  * @param method 加密方法
88
92
  */
89
93
  export declare function cipherDecrypt(encrypt: string | Buffer, key: crypto.CipherKey, iv?: string, method?: string, output?: 'binary' | 'buffer'): string | Buffer | false;
package/lib/crypto.js CHANGED
@@ -96,10 +96,14 @@ export function privateDecrypt(key, buffer) {
96
96
  return crypto.privateDecrypt(key, buffer);
97
97
  }
98
98
  // --- Cipher (AES/SM4...) 加/解密 ---
99
- export const AES_256_ECB = 'aes-256-ecb'; // --- 如果未设置 iv,则默认这个,但强烈不建议 ---
99
+ /** --- 勿使用,无 iv 默认,但勿使用 --- */
100
+ export const AES_256_ECB = 'aes-256-ecb';
101
+ /** --- 一般不用,兼容性场景下用 --- */
100
102
  export const AES_256_CBC = 'aes-256-cbc';
101
- export const AES_256_CFB = 'aes-256-cfb'; // --- 设置 iv,自动就切换成了这个 ---
102
- export const AES_256_GCM = 'aes-256-gcm'; // --- 强烈建议使用这个 ---
103
+ /** --- 设置 iv 会自动切换为 CTR,流式下使用,非流直接使用 GCM --- */
104
+ export const AES_256_CTR = 'aes-256-ctr';
105
+ /** --- 非流直接使用 GCM --- */
106
+ export const AES_256_GCM = 'aes-256-gcm';
103
107
  export const SM4_ECB = 'sm4-ecb'; // --- SM4 如果未设置 iv,则默认这个 ---
104
108
  export const SM4_CBC = 'sm4-cbc';
105
109
  export const SM4_CFB = 'sm4-cfb'; // --- SM4 一般用这个,设置 iv,自动就切换成了这个 ---
@@ -107,7 +111,7 @@ export const SM4_CFB = 'sm4-cfb'; // --- SM4 一般用这个,设置 iv,自
107
111
  * --- cipher 加密,强烈不建议使用 AES_256_ECB ---
108
112
  * @param original 原始字符串
109
113
  * @param key 密钥 32 个英文字母和数字
110
- * @param iv 向量 16(CFB) 或 12(GCM) 个英文字母和数字
114
+ * @param iv 向量 16(CTR) 或 12(GCM) 个英文字母和数字
111
115
  * @param method 加密方法
112
116
  */
113
117
  export function cipherEncrypt(original, key, iv = '', method = AES_256_ECB, output = 'base64') {
@@ -116,7 +120,7 @@ export function cipherEncrypt(original, key, iv = '', method = AES_256_ECB, outp
116
120
  key = hashHmac('md5', key, 'MaiyunSalt');
117
121
  }
118
122
  if (iv) {
119
- if (method === AES_256_CFB) {
123
+ if (method === AES_256_CTR) {
120
124
  if (iv.length !== 16) {
121
125
  return false;
122
126
  }
@@ -165,13 +169,13 @@ export function cipherEncrypt(original, key, iv = '', method = AES_256_ECB, outp
165
169
  * --- AES 加密 ---
166
170
  * @param original 原始字符串
167
171
  * @param key 密钥尽量 32 个英文字母和数字,不是 32 个系统会自动处理
168
- * @param iv 向量 16 个英文字母和数字
172
+ * @param iv 向量 16(CTR) 或 12(GCM) 个英文字母和数字
169
173
  * @param method 加密方法
170
174
  * @param output 输出类型
171
175
  */
172
176
  export function aesEncrypt(original, key, iv = '', method = AES_256_ECB, output = 'base64') {
173
177
  if (iv !== '') {
174
- method = method === AES_256_ECB ? AES_256_CFB : method;
178
+ method = method === AES_256_ECB ? AES_256_CTR : method;
175
179
  }
176
180
  return cipherEncrypt(original, key, iv, method, output);
177
181
  }
@@ -206,7 +210,7 @@ export function sm4Encrypt(original, key, iv = '', method = SM4_ECB, output = 'b
206
210
  * --- cipher 解密 ---
207
211
  * @param encrypt 需解密的字符串
208
212
  * @param key 密钥 32 个英文字母和数字
209
- * @param iv 向量 16(CFB) 或 12(GCM) 个英文字母和数字
213
+ * @param iv 向量 16(CTR) 或 12(GCM) 个英文字母和数字
210
214
  * @param method 加密方法
211
215
  */
212
216
  export function cipherDecrypt(encrypt, key, iv = '', method = AES_256_ECB, output = 'binary') {
@@ -215,7 +219,7 @@ export function cipherDecrypt(encrypt, key, iv = '', method = AES_256_ECB, outpu
215
219
  key = hashHmac('md5', key, 'MaiyunSalt');
216
220
  }
217
221
  if (iv) {
218
- if (method === AES_256_CFB) {
222
+ if (method === AES_256_CTR) {
219
223
  if (iv.length !== 16) {
220
224
  return false;
221
225
  }
@@ -268,12 +272,12 @@ export function cipherDecrypt(encrypt, key, iv = '', method = AES_256_ECB, outpu
268
272
  * --- AES 解密 ---
269
273
  * @param encrypt 需解密的字符串
270
274
  * @param key 密钥 32 个英文字母和数字
271
- * @param iv 向量 16 个英文字母和数字
275
+ * @param iv 向量 16(CTR) 或 12(GCM) 个英文字母和数字
272
276
  * @param method 加密方法
273
277
  */
274
278
  export function aesDecrypt(encrypt, key, iv = '', method = AES_256_ECB, output = 'binary') {
275
279
  if (iv !== '') {
276
- method = method === AES_256_ECB ? AES_256_CFB : method;
280
+ method = method === AES_256_ECB ? AES_256_CTR : method;
277
281
  }
278
282
  return cipherDecrypt(encrypt, key, iv, method, output);
279
283
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maiyunnet/kebab",
3
- "version": "3.2.7",
3
+ "version": "3.2.8",
4
4
  "description": "Simple, easy-to-use, and fully-featured Node.js framework that is ready-to-use out of the box.",
5
5
  "type": "module",
6
6
  "keywords": [