@lakutata/core 1.0.50 → 1.0.52

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.
@@ -8,6 +8,7 @@ export declare class Security extends Plugin {
8
8
  private readonly JSON;
9
9
  private readonly Crypto;
10
10
  protected readonly saltRound: number;
11
+ protected stringifyData(data: any): string;
11
12
  generateRandomString(length?: number, options?: {
12
13
  numbers: boolean | string;
13
14
  letters: boolean | string;
@@ -26,6 +26,9 @@ class Security extends Plugin_1.Plugin {
26
26
  super(...arguments);
27
27
  this.saltRound = 8;
28
28
  }
29
+ stringifyData(data) {
30
+ return typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(this.JSON.parse(this.JSON.stringify(data)), { deep: true }));
31
+ }
29
32
  generateRandomString(length = 16, options = {
30
33
  numbers: true,
31
34
  letters: true,
@@ -38,7 +41,7 @@ class Security extends Plugin_1.Plugin {
38
41
  });
39
42
  }
40
43
  MD5(data, key) {
41
- const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
44
+ const stringData = this.stringifyData(data);
42
45
  if (key) {
43
46
  return (0, crypto_js_1.HmacMD5)(stringData, key).toString();
44
47
  }
@@ -47,7 +50,7 @@ class Security extends Plugin_1.Plugin {
47
50
  }
48
51
  }
49
52
  SHA1(data, key) {
50
- const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
53
+ const stringData = this.stringifyData(data);
51
54
  if (key) {
52
55
  return (0, crypto_js_1.HmacSHA1)(stringData, key).toString();
53
56
  }
@@ -56,7 +59,7 @@ class Security extends Plugin_1.Plugin {
56
59
  }
57
60
  }
58
61
  SHA3(data, key) {
59
- const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
62
+ const stringData = this.stringifyData(data);
60
63
  if (key) {
61
64
  return (0, crypto_js_1.HmacSHA3)(stringData, key).toString();
62
65
  }
@@ -65,7 +68,7 @@ class Security extends Plugin_1.Plugin {
65
68
  }
66
69
  }
67
70
  SHA224(data, key) {
68
- const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
71
+ const stringData = this.stringifyData(data);
69
72
  if (key) {
70
73
  return (0, crypto_js_1.HmacSHA224)(stringData, key).toString();
71
74
  }
@@ -74,7 +77,7 @@ class Security extends Plugin_1.Plugin {
74
77
  }
75
78
  }
76
79
  SHA256(data, key) {
77
- const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
80
+ const stringData = this.stringifyData(data);
78
81
  if (key) {
79
82
  return (0, crypto_js_1.HmacSHA256)(stringData, key).toString();
80
83
  }
@@ -83,7 +86,7 @@ class Security extends Plugin_1.Plugin {
83
86
  }
84
87
  }
85
88
  SHA384(data, key) {
86
- const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
89
+ const stringData = this.stringifyData(data);
87
90
  if (key) {
88
91
  return (0, crypto_js_1.HmacSHA384)(stringData, key).toString();
89
92
  }
@@ -92,7 +95,7 @@ class Security extends Plugin_1.Plugin {
92
95
  }
93
96
  }
94
97
  SHA512(data, key) {
95
- const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
98
+ const stringData = this.stringifyData(data);
96
99
  if (key) {
97
100
  return (0, crypto_js_1.HmacSHA512)(stringData, key).toString();
98
101
  }
@@ -101,7 +104,7 @@ class Security extends Plugin_1.Plugin {
101
104
  }
102
105
  }
103
106
  encryptByPassword(data, password) {
104
- const stringData = typeof data === 'string' ? data : this.JSON.stringify((0, sort_keys_1.default)(data, { deep: true }));
107
+ const stringData = this.stringifyData(data);
105
108
  return crypto_js_1.AES.encrypt(stringData, password).toString();
106
109
  }
107
110
  decryptByPassword(ciphertext, password) {
@@ -1 +1 @@
1
- {"version":3,"file":"Security.js","sourceRoot":"","sources":["../../src/plugins/Security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Security.js","sourceRoot":"","sources":["../../src/plugins/Security.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakutata/core",
3
- "version": "1.0.50",
3
+ "version": "1.0.52",
4
4
  "description": "Lakutata Framework Core",
5
5
  "main": "./build/Core.js",
6
6
  "types": "./build/Core.d.ts",
@@ -98,7 +98,7 @@
98
98
  "eslint-plugin-promise": "^5.2.0",
99
99
  "shx": "^0.3.4",
100
100
  "ts-node": "^10.9.1",
101
- "typescript": "4.7.4"
101
+ "typescript": "~4.7.4"
102
102
  },
103
103
  "engines": {
104
104
  "node": ">=12.22.1"
@@ -1,24 +1,24 @@
1
1
  import stringRandom from 'string-random'
2
2
  import {
3
- MD5,
3
+ AES,
4
+ enc,
4
5
  HmacMD5,
5
- SHA1,
6
6
  HmacSHA1,
7
- SHA3,
8
- HmacSHA3,
9
- SHA224,
10
7
  HmacSHA224,
11
- SHA256,
12
8
  HmacSHA256,
13
- SHA384,
9
+ HmacSHA3,
14
10
  HmacSHA384,
15
- SHA512,
16
11
  HmacSHA512,
17
- AES,
18
- enc
12
+ MD5,
13
+ SHA1,
14
+ SHA224,
15
+ SHA256,
16
+ SHA3,
17
+ SHA384,
18
+ SHA512
19
19
  } from 'crypto-js'
20
20
  import sortKeys from 'sort-keys'
21
- import {genSalt, genSaltSync, hash, hashSync, compare, compareSync} from 'bcryptjs'
21
+ import {compare, compareSync, genSalt, genSaltSync, hash, hashSync} from 'bcryptjs'
22
22
  import {Plugin} from '../base/Plugin'
23
23
  import {JSON} from './JSON'
24
24
  import {Crypto} from './Crypto'
@@ -45,6 +45,16 @@ export class Security extends Plugin {
45
45
  @Configurable()
46
46
  protected readonly saltRound: number = 8
47
47
 
48
+ /**
49
+ * 将数据转换为字符串
50
+ * @param data
51
+ * @returns {string}
52
+ * @protected
53
+ */
54
+ protected stringifyData(data: any): string {
55
+ return typeof data === 'string' ? data : this.JSON.stringify(sortKeys(this.JSON.parse(this.JSON.stringify(data)), {deep: true}))
56
+ }
57
+
48
58
  /**
49
59
  * 生成随机字符串
50
60
  * @param {number} length
@@ -71,7 +81,7 @@ export class Security extends Plugin {
71
81
  * @constructor
72
82
  */
73
83
  public MD5(data: any, key?: string): string {
74
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
84
+ const stringData: string = this.stringifyData(data)
75
85
  if (key) {
76
86
  return HmacMD5(stringData, key).toString()
77
87
  } else {
@@ -87,7 +97,7 @@ export class Security extends Plugin {
87
97
  * @constructor
88
98
  */
89
99
  public SHA1(data: any, key?: string): string {
90
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
100
+ const stringData: string = this.stringifyData(data)
91
101
  if (key) {
92
102
  return HmacSHA1(stringData, key).toString()
93
103
  } else {
@@ -103,7 +113,7 @@ export class Security extends Plugin {
103
113
  * @constructor
104
114
  */
105
115
  public SHA3(data: any, key?: string): string {
106
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
116
+ const stringData: string = this.stringifyData(data)
107
117
  if (key) {
108
118
  return HmacSHA3(stringData, key).toString()
109
119
  } else {
@@ -119,7 +129,7 @@ export class Security extends Plugin {
119
129
  * @constructor
120
130
  */
121
131
  public SHA224(data: any, key?: string): string {
122
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
132
+ const stringData: string = this.stringifyData(data)
123
133
  if (key) {
124
134
  return HmacSHA224(stringData, key).toString()
125
135
  } else {
@@ -135,7 +145,7 @@ export class Security extends Plugin {
135
145
  * @constructor
136
146
  */
137
147
  public SHA256(data: any, key?: string): string {
138
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
148
+ const stringData: string = this.stringifyData(data)
139
149
  if (key) {
140
150
  return HmacSHA256(stringData, key).toString()
141
151
  } else {
@@ -151,7 +161,7 @@ export class Security extends Plugin {
151
161
  * @constructor
152
162
  */
153
163
  public SHA384(data: any, key?: string): string {
154
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
164
+ const stringData: string = this.stringifyData(data)
155
165
  if (key) {
156
166
  return HmacSHA384(stringData, key).toString()
157
167
  } else {
@@ -167,7 +177,7 @@ export class Security extends Plugin {
167
177
  * @constructor
168
178
  */
169
179
  public SHA512(data: any, key?: string): string {
170
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
180
+ const stringData: string = this.stringifyData(data)
171
181
  if (key) {
172
182
  return HmacSHA512(stringData, key).toString()
173
183
  } else {
@@ -182,7 +192,7 @@ export class Security extends Plugin {
182
192
  * @returns {string}
183
193
  */
184
194
  public encryptByPassword<T = any>(data: T, password: string): string {
185
- const stringData: string = typeof data === 'string' ? data : this.JSON.stringify(sortKeys(data, {deep: true}))
195
+ const stringData: string = this.stringifyData(data)
186
196
  return AES.encrypt(stringData, password).toString()
187
197
  }
188
198