@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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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":";;;;;;;;;;;;;;;AAAA,kEAAwC;AACxC,yCAiBkB;AAClB,0DAAgC;AAChC,uCAAmF;AACnF,2CAAqC;AACrC,iCAA2B;AAC3B,qCAA+B;AAC/B,2EAAsE;AAQtE,MAAa,QAAS,SAAQ,eAAM;IAApC;;QAaoB,cAAS,GAAW,CAAC,CAAA;
|
|
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.
|
|
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"
|
package/src/plugins/Security.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import stringRandom from 'string-random'
|
|
2
2
|
import {
|
|
3
|
-
|
|
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
|
-
|
|
9
|
+
HmacSHA3,
|
|
14
10
|
HmacSHA384,
|
|
15
|
-
SHA512,
|
|
16
11
|
HmacSHA512,
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
195
|
+
const stringData: string = this.stringifyData(data)
|
|
186
196
|
return AES.encrypt(stringData, password).toString()
|
|
187
197
|
}
|
|
188
198
|
|