almighty-tool 0.0.83 → 0.0.84
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/bun.lockb +0 -0
- package/lib/utils/crypto.util.d.ts +16 -0
- package/lib/utils/crypto.util.js +42 -0
- package/lib/utils/crypto.util.js.map +1 -1
- package/package.json +1 -2
- package/lib/utils/heavy-crypto.util.d.ts +0 -66
- package/lib/utils/heavy-crypto.util.js +0 -171
- package/lib/utils/heavy-crypto.util.js.map +0 -1
package/bun.lockb
CHANGED
|
Binary file
|
|
@@ -39,5 +39,21 @@ declare const cryptoUtil: {
|
|
|
39
39
|
* 解密
|
|
40
40
|
*/
|
|
41
41
|
aesDecrypt(data: string, key: string, iv: string, algorithm?: forge.cipher.Algorithm): string;
|
|
42
|
+
/** ========= RSA 实现部分 ========= */
|
|
43
|
+
generateRsaKeyPair(bits?: number): {
|
|
44
|
+
publicKey: string;
|
|
45
|
+
privateKey: string;
|
|
46
|
+
};
|
|
47
|
+
publicEncrypt(publicKey: string, data: string): string;
|
|
48
|
+
privateDecrypt(privateKey: string, encrypted: string): string;
|
|
49
|
+
/** 长文本混合加密 */
|
|
50
|
+
longPublicEncrypt(publicKey: string, data: string): {
|
|
51
|
+
encryptedAesKey: string;
|
|
52
|
+
encryptedData: string;
|
|
53
|
+
};
|
|
54
|
+
longPrivateDecrypt(privateKey: string, encryptedAesKey: string, encryptedData: string): string;
|
|
55
|
+
/** 辅助方法 */
|
|
56
|
+
joinStrings(txt1: string, txt2: string): string;
|
|
57
|
+
splitJoinedStrings(str: string): string[];
|
|
42
58
|
};
|
|
43
59
|
export default cryptoUtil;
|
package/lib/utils/crypto.util.js
CHANGED
|
@@ -100,6 +100,48 @@ var cryptoUtil = {
|
|
|
100
100
|
decipher.finish();
|
|
101
101
|
return node_forge_1.default.util.decodeUtf8(decipher.output.data);
|
|
102
102
|
},
|
|
103
|
+
/** ========= RSA 实现部分 ========= */
|
|
104
|
+
// 生成RSA密钥对
|
|
105
|
+
generateRsaKeyPair: function (bits) {
|
|
106
|
+
if (bits === void 0) { bits = 2048; }
|
|
107
|
+
var keypair = node_forge_1.default.pki.rsa.generateKeyPair({ bits: bits });
|
|
108
|
+
return {
|
|
109
|
+
publicKey: node_forge_1.default.pki.publicKeyToPem(keypair.publicKey),
|
|
110
|
+
privateKey: node_forge_1.default.pki.privateKeyToPem(keypair.privateKey),
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
// 公钥加密
|
|
114
|
+
publicEncrypt: function (publicKey, data) {
|
|
115
|
+
var key = node_forge_1.default.pki.publicKeyFromPem(publicKey);
|
|
116
|
+
// return window.btoa(key.encrypt(data, 'RSA-OAEP'));
|
|
117
|
+
return this.base64Encode(key.encrypt(data, 'RSA-OAEP'));
|
|
118
|
+
},
|
|
119
|
+
// 私钥解密
|
|
120
|
+
privateDecrypt: function (privateKey, encrypted) {
|
|
121
|
+
var key = node_forge_1.default.pki.privateKeyFromPem(privateKey);
|
|
122
|
+
return key.decrypt(this.base64Decode(encrypted), 'RSA-OAEP');
|
|
123
|
+
},
|
|
124
|
+
/** 长文本混合加密 */
|
|
125
|
+
longPublicEncrypt: function (publicKey, data) {
|
|
126
|
+
var _a = this.generateAesKeyAndIV(), aesKey = _a.key, iv = _a.iv;
|
|
127
|
+
return {
|
|
128
|
+
encryptedAesKey: this.publicEncrypt(publicKey, aesKey),
|
|
129
|
+
encryptedData: this.joinStrings(iv, this.aesEncrypt(data, aesKey, iv)),
|
|
130
|
+
};
|
|
131
|
+
},
|
|
132
|
+
longPrivateDecrypt: function (privateKey, encryptedAesKey, encryptedData) {
|
|
133
|
+
var aesKey = this.privateDecrypt(privateKey, encryptedAesKey);
|
|
134
|
+
var _a = this.splitJoinedStrings(encryptedData), iv = _a[0], data = _a[1];
|
|
135
|
+
return this.aesDecrypt(data, aesKey, iv);
|
|
136
|
+
},
|
|
137
|
+
/** 辅助方法 */
|
|
138
|
+
joinStrings: function (txt1, txt2) {
|
|
139
|
+
return [txt1, txt2].join('##');
|
|
140
|
+
},
|
|
141
|
+
splitJoinedStrings: function (str) {
|
|
142
|
+
var index = str.indexOf('##');
|
|
143
|
+
return index !== -1 ? [str.slice(0, index), str.slice(index + 2)] : [str];
|
|
144
|
+
},
|
|
103
145
|
};
|
|
104
146
|
exports.default = cryptoUtil;
|
|
105
147
|
//# sourceMappingURL=crypto.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.util.js","sourceRoot":"","sources":["../../src/utils/crypto.util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crypto.util.js","sourceRoot":"","sources":["../../src/utils/crypto.util.ts"],"names":[],"mappings":";;;AAAA,uEAA+B;AAC/B,6BAAoC;AACpC,2EAAuC;AAEvC,IAAM,UAAU,GAAG;IACjB,cAAc;IACd,IAAI,EAAJ;QACE,OAAO,IAAA,SAAM,GAAE,CAAC;IAClB,CAAC;IAED,cAAc;IACd,GAAG,EAAH,UAAI,KAAa;QACf,IAAM,GAAG,GAAG,oBAAK,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAClC,GAAG,CAAC,MAAM,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,eAAe;IACf,IAAI,EAAJ,UAAK,GAA0C,EAAE,KAAa,EAAE,EAAiC;QAAjC,mBAAA,EAAA,aAAiC;QAC/F,IAAM,IAAI,GAAG,oBAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,eAAe;IACf,IAAI,EAAJ,UAAK,KAAa;QAChB,IAAM,IAAI,GAAG,oBAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,iBAAiB;IACjB,MAAM,EAAN,UAAO,KAAa;QAClB,IAAM,MAAM,GAAG,oBAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,iBAAiB;IACjB,MAAM,EAAN,UAAO,KAAa;QAClB,IAAM,MAAM,GAAG,oBAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,iBAAiB;IACjB,MAAM,EAAN,UAAO,KAAa;QAClB,IAAM,MAAM,GAAG,oBAAK,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,eAAe;IACf,YAAY,EAAZ,UAAa,KAAa;QACxB,OAAO,oBAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,eAAe;IACf,YAAY,EAAZ,UAAa,KAAa;QACxB,OAAO,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,oBAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,YAAY;IACZ,mBAAmB,EAAnB;QACE,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE;YAC1B,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE;SACzB,CAAC;IACJ,CAAC;IAED,cAAc;IACd,cAAc,EAAd,UAAe,MAAW;QAAX,uBAAA,EAAA,WAAW;QACxB,OAAO,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,aAAa;IACb,aAAa,EAAb,UAAc,MAAW;QAAX,uBAAA,EAAA,WAAW;QACvB,OAAO,UAAU,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,eAAe;IACf,oBAAoB,EAApB,UAAqB,MAAc;QACjC,OAAO,qBAAU,CAAC,oBAAoB,CAAC,EAAE,MAAM,QAAA,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrG,CAAC;IAED;;;;OAIG;IACH,UAAU,EAAV,UAAW,IAAY,EAAE,GAAW,EAAE,EAAU,EAAE,SAA6C;QAA7C,0BAAA,EAAA,qBAA6C;QAC7F,IAAM,MAAM,GAAG,oBAAK,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAA,EAAE,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,oBAAK,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,oBAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,UAAU,EAAV,UAAW,IAAY,EAAE,GAAW,EAAE,EAAU,EAAE,SAA6C;QAA7C,0BAAA,EAAA,qBAA6C;QAC7F,IAAM,QAAQ,GAAG,oBAAK,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7D,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,IAAA,EAAE,CAAC,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,oBAAK,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,oBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,mCAAmC;IACnC,WAAW;IACX,kBAAkB,EAAlB,UAAmB,IAAW;QAAX,qBAAA,EAAA,WAAW;QAC5B,IAAM,OAAO,GAAG,oBAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;QACxD,OAAO;YACL,SAAS,EAAE,oBAAK,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;YACtD,UAAU,EAAE,oBAAK,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;SAC1D,CAAC;IACJ,CAAC;IAED,OAAO;IACP,aAAa,EAAb,UAAc,SAAiB,EAAE,IAAY;QAC3C,IAAM,GAAG,GAAG,oBAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAClD,qDAAqD;QACrD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO;IACP,cAAc,EAAd,UAAe,UAAkB,EAAE,SAAiB;QAClD,IAAM,GAAG,GAAG,oBAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc;IACd,iBAAiB,EAAjB,UAAkB,SAAiB,EAAE,IAAY;QACzC,IAAA,KAAsB,IAAI,CAAC,mBAAmB,EAAE,EAAzC,MAAM,SAAA,EAAE,EAAE,QAA+B,CAAC;QACvD,OAAO;YACL,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC;YACtD,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;SACvE,CAAC;IACJ,CAAC;IAED,kBAAkB,EAAlB,UAAmB,UAAkB,EAAE,eAAuB,EAAE,aAAqB;QACnF,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC1D,IAAA,KAAa,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAlD,EAAE,QAAA,EAAE,IAAI,QAA0C,CAAC;QAC1D,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;IACX,WAAW,EAAX,UAAY,IAAY,EAAE,IAAY;QACpC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,kBAAkB,EAAlB,UAAmB,GAAW;QAC5B,IAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5E,CAAC;CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "almighty-tool",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.84",
|
|
4
4
|
"description": "almighty-tool",
|
|
5
5
|
"author": "happy",
|
|
6
6
|
"private": false,
|
|
@@ -46,7 +46,6 @@
|
|
|
46
46
|
"mustache": "^4.2.0",
|
|
47
47
|
"nock": "^13.3.0",
|
|
48
48
|
"node-forge": "^1.3.1",
|
|
49
|
-
"node-rsa": "^1.1.1",
|
|
50
49
|
"qs": "^6.11.0",
|
|
51
50
|
"tslib": "^2.4.0",
|
|
52
51
|
"tsx": "^4.19.2",
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import crypto from 'crypto';
|
|
3
|
-
/**
|
|
4
|
-
* 这个heavyCryptoUtil与cryptoUtil的区别是: heavyCryptoUtil 用到了node 里的crypto, 并且heavyCryptoUtil 有 rsa 非对称加密算法。
|
|
5
|
-
* 两个 util 不要同时引入,heavyCryptoUtil 的体积要比cryptoUtil 大很多。如果不需要 rsa 加密,就用cryptoUtil 就好了。
|
|
6
|
-
*/
|
|
7
|
-
declare const heavyCryptoUtil: {
|
|
8
|
-
/** 获取 uuid */
|
|
9
|
-
uuid(): string;
|
|
10
|
-
/** 获取md5摘要 */
|
|
11
|
-
md5(value: crypto.BinaryLike, encoding?: crypto.BinaryToTextEncoding): string;
|
|
12
|
-
/** 获取hmac摘要 */
|
|
13
|
-
hmac(key: crypto.BinaryLike, bytes: string, algorithm?: string): string;
|
|
14
|
-
/** 获取sha1摘要 */
|
|
15
|
-
sha1(value: crypto.BinaryLike, encoding?: crypto.BinaryToTextEncoding): string;
|
|
16
|
-
/** 获取sha384摘要 */
|
|
17
|
-
sha384(value: crypto.BinaryLike, encoding?: crypto.BinaryToTextEncoding): string;
|
|
18
|
-
/** 获取sha256摘要 */
|
|
19
|
-
sha256(value: crypto.BinaryLike, encoding?: crypto.BinaryToTextEncoding): string;
|
|
20
|
-
/** 获取sha512摘要 */
|
|
21
|
-
sha512(value: crypto.BinaryLike, encoding?: crypto.BinaryToTextEncoding): string;
|
|
22
|
-
/** 生成密钥对 */
|
|
23
|
-
generateAesKeyAndIV(algorithm?: string): {
|
|
24
|
-
key: string;
|
|
25
|
-
iv: string;
|
|
26
|
-
};
|
|
27
|
-
/** 生成随机的字符串 */
|
|
28
|
-
generateRandomString(length: number): string;
|
|
29
|
-
/**
|
|
30
|
-
* 加密
|
|
31
|
-
*
|
|
32
|
-
* iv-length: 192/8
|
|
33
|
-
*/
|
|
34
|
-
aesEncrypt(data: string, key: string, iv: string, algorithm?: string): string;
|
|
35
|
-
/**
|
|
36
|
-
* 解密
|
|
37
|
-
*/
|
|
38
|
-
aesDecrypt(data: string, key: string, iv: string, algorithm?: string): string;
|
|
39
|
-
base64Encode(value: string): string;
|
|
40
|
-
base64Decode(value: string): string;
|
|
41
|
-
privateEncrypt(privateKey: string | Buffer, buffer: string | Buffer): string;
|
|
42
|
-
publicDecrypt(publicKey: string | Buffer, buffer: string | Buffer): string;
|
|
43
|
-
publicEncrypt(publicKey: string | Buffer, buffer: string | Buffer): string;
|
|
44
|
-
privateDecrypt(privateKey: string | Buffer, buffer: string | Buffer): string;
|
|
45
|
-
generateRsaKeyPair(bits?: number): {
|
|
46
|
-
publicKey: string;
|
|
47
|
-
privateKey: string;
|
|
48
|
-
};
|
|
49
|
-
/** 私钥加密: 对长文字进行 */
|
|
50
|
-
longPrivateEncrypt(privateKey: string | Buffer, buffer: string | Buffer): {
|
|
51
|
-
encryptedAesKey: string;
|
|
52
|
-
encryptedData: string;
|
|
53
|
-
};
|
|
54
|
-
/** 公钥解密: 对长文字进行 */
|
|
55
|
-
longPublicDecrypt(publicKey: string | Buffer, encryptedAesKey: string, encryptedData: string): string;
|
|
56
|
-
/** 公钥加密: 对长文字进行 */
|
|
57
|
-
longPublicEncrypt(publicKey: string | Buffer, buffer: string | Buffer): {
|
|
58
|
-
encryptedAesKey: string;
|
|
59
|
-
encryptedData: string;
|
|
60
|
-
};
|
|
61
|
-
/** 私钥解密: 对长文字进行 */
|
|
62
|
-
longPrivatgeDecrypt(privateKey: string | Buffer, encryptedAesKey: string, encryptedData: string): string;
|
|
63
|
-
joinStrings(txt1: string, txt2: string): string;
|
|
64
|
-
splitJoinedStrings(joinedString: string): string[];
|
|
65
|
-
};
|
|
66
|
-
export default heavyCryptoUtil;
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
|
-
var crypto_1 = (0, tslib_1.__importDefault)(require("crypto"));
|
|
5
|
-
var node_rsa_1 = (0, tslib_1.__importDefault)(require("node-rsa"));
|
|
6
|
-
var uuid_1 = require("uuid");
|
|
7
|
-
/**
|
|
8
|
-
* 这个heavyCryptoUtil与cryptoUtil的区别是: heavyCryptoUtil 用到了node 里的crypto, 并且heavyCryptoUtil 有 rsa 非对称加密算法。
|
|
9
|
-
* 两个 util 不要同时引入,heavyCryptoUtil 的体积要比cryptoUtil 大很多。如果不需要 rsa 加密,就用cryptoUtil 就好了。
|
|
10
|
-
*/
|
|
11
|
-
var heavyCryptoUtil = {
|
|
12
|
-
/** 获取 uuid */
|
|
13
|
-
uuid: function () {
|
|
14
|
-
return (0, uuid_1.v4)();
|
|
15
|
-
},
|
|
16
|
-
/** 获取md5摘要 */
|
|
17
|
-
md5: function (value, encoding) {
|
|
18
|
-
if (encoding === void 0) { encoding = 'hex'; }
|
|
19
|
-
return crypto_1.default.createHash('md5').update(value).digest(encoding);
|
|
20
|
-
},
|
|
21
|
-
/** 获取hmac摘要 */
|
|
22
|
-
hmac: function (key, bytes, algorithm) {
|
|
23
|
-
if (algorithm === void 0) { algorithm = 'sha256'; }
|
|
24
|
-
var hmac = crypto_1.default.createHmac(algorithm, key);
|
|
25
|
-
hmac.update(bytes);
|
|
26
|
-
return hmac.digest('hex');
|
|
27
|
-
},
|
|
28
|
-
/** 获取sha1摘要 */
|
|
29
|
-
sha1: function (value, encoding) {
|
|
30
|
-
if (encoding === void 0) { encoding = 'hex'; }
|
|
31
|
-
return crypto_1.default.createHash('sha1').update(value).digest(encoding);
|
|
32
|
-
},
|
|
33
|
-
/** 获取sha384摘要 */
|
|
34
|
-
sha384: function (value, encoding) {
|
|
35
|
-
if (encoding === void 0) { encoding = 'hex'; }
|
|
36
|
-
return crypto_1.default.createHash('sha384').update(value).digest(encoding);
|
|
37
|
-
},
|
|
38
|
-
/** 获取sha256摘要 */
|
|
39
|
-
sha256: function (value, encoding) {
|
|
40
|
-
if (encoding === void 0) { encoding = 'hex'; }
|
|
41
|
-
return crypto_1.default.createHash('sha256').update(value).digest(encoding);
|
|
42
|
-
},
|
|
43
|
-
/** 获取sha512摘要 */
|
|
44
|
-
sha512: function (value, encoding) {
|
|
45
|
-
if (encoding === void 0) { encoding = 'hex'; }
|
|
46
|
-
return crypto_1.default.createHash('sha512').update(value).digest(encoding);
|
|
47
|
-
},
|
|
48
|
-
/** 生成密钥对 */
|
|
49
|
-
generateAesKeyAndIV: function (algorithm) {
|
|
50
|
-
if (algorithm === void 0) { algorithm = 'aes-128-cbc'; }
|
|
51
|
-
return {
|
|
52
|
-
key: heavyCryptoUtil.generateRandomString(Number(algorithm.split('-')[1]) / 8),
|
|
53
|
-
iv: heavyCryptoUtil.generateRandomString(Number(algorithm.split('-')[1]) / 8),
|
|
54
|
-
};
|
|
55
|
-
},
|
|
56
|
-
/** 生成随机的字符串 */
|
|
57
|
-
generateRandomString: function (length) {
|
|
58
|
-
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
59
|
-
var randomString = '';
|
|
60
|
-
for (var i = 0; i < length; i++) {
|
|
61
|
-
var randomIndex = Math.floor(Math.random() * characters.length);
|
|
62
|
-
randomString += characters[randomIndex];
|
|
63
|
-
}
|
|
64
|
-
return randomString;
|
|
65
|
-
},
|
|
66
|
-
/**
|
|
67
|
-
* 加密
|
|
68
|
-
*
|
|
69
|
-
* iv-length: 192/8
|
|
70
|
-
*/
|
|
71
|
-
aesEncrypt: function (data, key, iv, algorithm) {
|
|
72
|
-
if (algorithm === void 0) { algorithm = 'aes-128-cbc'; }
|
|
73
|
-
var cipherChunks = [];
|
|
74
|
-
var cipher = crypto_1.default.createCipheriv(algorithm, key, iv);
|
|
75
|
-
cipher.setAutoPadding(true);
|
|
76
|
-
cipherChunks.push(cipher.update(data, 'utf8', 'base64'));
|
|
77
|
-
cipherChunks.push(cipher.final('base64'));
|
|
78
|
-
return cipherChunks.join('');
|
|
79
|
-
},
|
|
80
|
-
/**
|
|
81
|
-
* 解密
|
|
82
|
-
*/
|
|
83
|
-
aesDecrypt: function (data, key, iv, algorithm) {
|
|
84
|
-
if (algorithm === void 0) { algorithm = 'aes-128-cbc'; }
|
|
85
|
-
var cipherChunks = [];
|
|
86
|
-
var decipher = crypto_1.default.createDecipheriv(algorithm, key, iv);
|
|
87
|
-
decipher.setAutoPadding(true);
|
|
88
|
-
cipherChunks.push(decipher.update(data, 'base64', 'utf8'));
|
|
89
|
-
cipherChunks.push(decipher.final('utf8'));
|
|
90
|
-
return cipherChunks.join('');
|
|
91
|
-
},
|
|
92
|
-
// Base64 编码
|
|
93
|
-
base64Encode: function (value) {
|
|
94
|
-
return Buffer.from(value).toString('base64');
|
|
95
|
-
},
|
|
96
|
-
// Base64 解码
|
|
97
|
-
base64Decode: function (value) {
|
|
98
|
-
return Buffer.from(value, 'base64').toString();
|
|
99
|
-
},
|
|
100
|
-
// 以下是rsa相关的方法
|
|
101
|
-
// 私钥加密
|
|
102
|
-
privateEncrypt: function (privateKey, buffer) {
|
|
103
|
-
var key = new node_rsa_1.default(privateKey);
|
|
104
|
-
return key.encryptPrivate(buffer, 'base64');
|
|
105
|
-
},
|
|
106
|
-
// 公钥解密
|
|
107
|
-
publicDecrypt: function (publicKey, buffer) {
|
|
108
|
-
var key = new node_rsa_1.default(publicKey);
|
|
109
|
-
return key.decryptPublic(buffer, 'utf8');
|
|
110
|
-
},
|
|
111
|
-
// 公钥加密
|
|
112
|
-
publicEncrypt: function (publicKey, buffer) {
|
|
113
|
-
var key = new node_rsa_1.default(publicKey);
|
|
114
|
-
return key.encrypt(buffer, 'base64');
|
|
115
|
-
},
|
|
116
|
-
// 私钥解密
|
|
117
|
-
privateDecrypt: function (privateKey, buffer) {
|
|
118
|
-
var key = new node_rsa_1.default(privateKey);
|
|
119
|
-
return key.decrypt(buffer, 'utf8');
|
|
120
|
-
},
|
|
121
|
-
// 生成 RSA 密钥对
|
|
122
|
-
generateRsaKeyPair: function (bits) {
|
|
123
|
-
if (bits === void 0) { bits = 2048; }
|
|
124
|
-
var key = new node_rsa_1.default({ b: bits });
|
|
125
|
-
return { publicKey: key.exportKey('public'), privateKey: key.exportKey('private') };
|
|
126
|
-
},
|
|
127
|
-
/** 私钥加密: 对长文字进行 */
|
|
128
|
-
longPrivateEncrypt: function (privateKey, buffer) {
|
|
129
|
-
var _a = heavyCryptoUtil.generateAesKeyAndIV(), aesKey = _a.key, aesIv = _a.iv;
|
|
130
|
-
var encryptedAesKey = heavyCryptoUtil.privateEncrypt(privateKey, aesKey);
|
|
131
|
-
var encryptedData = heavyCryptoUtil.joinStrings(aesIv, heavyCryptoUtil.aesEncrypt(buffer.toString(), aesKey, aesIv));
|
|
132
|
-
return {
|
|
133
|
-
encryptedAesKey: encryptedAesKey,
|
|
134
|
-
encryptedData: encryptedData,
|
|
135
|
-
};
|
|
136
|
-
},
|
|
137
|
-
/** 公钥解密: 对长文字进行 */
|
|
138
|
-
longPublicDecrypt: function (publicKey, encryptedAesKey, encryptedData) {
|
|
139
|
-
var key = heavyCryptoUtil.publicDecrypt(publicKey, encryptedAesKey).toString();
|
|
140
|
-
var _a = heavyCryptoUtil.splitJoinedStrings(encryptedData), iv = _a[0], encrypted = _a[1];
|
|
141
|
-
return heavyCryptoUtil.aesDecrypt(encrypted, key, iv);
|
|
142
|
-
},
|
|
143
|
-
/** 公钥加密: 对长文字进行 */
|
|
144
|
-
longPublicEncrypt: function (publicKey, buffer) {
|
|
145
|
-
var _a = heavyCryptoUtil.generateAesKeyAndIV(), aesKey = _a.key, aesIv = _a.iv;
|
|
146
|
-
var encryptedAesKey = heavyCryptoUtil.publicEncrypt(publicKey, aesKey);
|
|
147
|
-
var encryptedData = heavyCryptoUtil.joinStrings(aesIv, heavyCryptoUtil.aesEncrypt(buffer.toString(), aesKey, aesIv));
|
|
148
|
-
return {
|
|
149
|
-
encryptedAesKey: encryptedAesKey,
|
|
150
|
-
encryptedData: encryptedData,
|
|
151
|
-
};
|
|
152
|
-
},
|
|
153
|
-
/** 私钥解密: 对长文字进行 */
|
|
154
|
-
longPrivatgeDecrypt: function (privateKey, encryptedAesKey, encryptedData) {
|
|
155
|
-
var key = heavyCryptoUtil.privateDecrypt(privateKey, encryptedAesKey).toString();
|
|
156
|
-
var _a = heavyCryptoUtil.splitJoinedStrings(encryptedData), iv = _a[0], encrypted = _a[1];
|
|
157
|
-
return heavyCryptoUtil.aesDecrypt(encrypted, key, iv);
|
|
158
|
-
},
|
|
159
|
-
joinStrings: function (txt1, txt2) {
|
|
160
|
-
return [txt1, txt2].join('##');
|
|
161
|
-
},
|
|
162
|
-
splitJoinedStrings: function (joinedString) {
|
|
163
|
-
var index = joinedString.indexOf('##');
|
|
164
|
-
if (index !== -1) {
|
|
165
|
-
return [joinedString.slice(0, index), joinedString.slice(index + 2)];
|
|
166
|
-
}
|
|
167
|
-
return [joinedString];
|
|
168
|
-
},
|
|
169
|
-
};
|
|
170
|
-
exports.default = heavyCryptoUtil;
|
|
171
|
-
//# sourceMappingURL=heavy-crypto.util.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"heavy-crypto.util.js","sourceRoot":"","sources":["../../src/utils/heavy-crypto.util.ts"],"names":[],"mappings":"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"}
|