cyberchef 9.47.0 → 9.47.2
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cyberchef",
|
|
3
|
-
"version": "9.47.
|
|
3
|
+
"version": "9.47.2",
|
|
4
4
|
"description": "The Cyber Swiss Army Knife for encryption, encoding, compression and data analysis.",
|
|
5
5
|
"author": "n1474335 <n1474335@gmail.com>",
|
|
6
6
|
"homepage": "https://gchq.github.io/CyberChef",
|
|
@@ -3584,10 +3584,27 @@
|
|
|
3584
3584
|
"value": [
|
|
3585
3585
|
"A",
|
|
3586
3586
|
"AAAA",
|
|
3587
|
-
"
|
|
3588
|
-
"
|
|
3587
|
+
"ANAME",
|
|
3588
|
+
"CERT",
|
|
3589
|
+
"CNAME",
|
|
3589
3590
|
"DNSKEY",
|
|
3590
|
-
"
|
|
3591
|
+
"HTTPS",
|
|
3592
|
+
"IPSECKEY",
|
|
3593
|
+
"LOC",
|
|
3594
|
+
"MX",
|
|
3595
|
+
"NS",
|
|
3596
|
+
"OPENPGPKEY",
|
|
3597
|
+
"PTR",
|
|
3598
|
+
"RRSIG",
|
|
3599
|
+
"SIG",
|
|
3600
|
+
"SOA",
|
|
3601
|
+
"SPF",
|
|
3602
|
+
"SRV",
|
|
3603
|
+
"SSHFP",
|
|
3604
|
+
"TA",
|
|
3605
|
+
"TXT",
|
|
3606
|
+
"URI",
|
|
3607
|
+
"ANY"
|
|
3591
3608
|
]
|
|
3592
3609
|
},
|
|
3593
3610
|
{
|
|
@@ -6731,7 +6748,27 @@
|
|
|
6731
6748
|
"outputType": "string",
|
|
6732
6749
|
"flowControl": false,
|
|
6733
6750
|
"manualBake": false,
|
|
6734
|
-
"args": [
|
|
6751
|
+
"args": [
|
|
6752
|
+
{
|
|
6753
|
+
"name": "Length (bits)",
|
|
6754
|
+
"type": "option",
|
|
6755
|
+
"value": [
|
|
6756
|
+
"All",
|
|
6757
|
+
"128",
|
|
6758
|
+
"160",
|
|
6759
|
+
"224",
|
|
6760
|
+
"256",
|
|
6761
|
+
"320",
|
|
6762
|
+
"384",
|
|
6763
|
+
"512"
|
|
6764
|
+
]
|
|
6765
|
+
},
|
|
6766
|
+
{
|
|
6767
|
+
"name": "Include names",
|
|
6768
|
+
"type": "boolean",
|
|
6769
|
+
"value": true
|
|
6770
|
+
}
|
|
6771
|
+
]
|
|
6735
6772
|
},
|
|
6736
6773
|
"Generate HOTP": {
|
|
6737
6774
|
"module": "Default",
|
|
@@ -51,10 +51,27 @@ class DNSOverHTTPS extends Operation {
|
|
|
51
51
|
value: [
|
|
52
52
|
"A",
|
|
53
53
|
"AAAA",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
54
|
+
"ANAME",
|
|
55
|
+
"CERT",
|
|
56
|
+
"CNAME",
|
|
56
57
|
"DNSKEY",
|
|
57
|
-
"
|
|
58
|
+
"HTTPS",
|
|
59
|
+
"IPSECKEY",
|
|
60
|
+
"LOC",
|
|
61
|
+
"MX",
|
|
62
|
+
"NS",
|
|
63
|
+
"OPENPGPKEY",
|
|
64
|
+
"PTR",
|
|
65
|
+
"RRSIG",
|
|
66
|
+
"SIG",
|
|
67
|
+
"SOA",
|
|
68
|
+
"SPF",
|
|
69
|
+
"SRV",
|
|
70
|
+
"SSHFP",
|
|
71
|
+
"TA",
|
|
72
|
+
"TXT",
|
|
73
|
+
"URI",
|
|
74
|
+
"ANY"
|
|
58
75
|
]
|
|
59
76
|
},
|
|
60
77
|
{
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author n1474335 [n1474335@gmail.com]
|
|
3
|
+
* @author john19696 [john19696@protonmail.com]
|
|
3
4
|
* @copyright Crown Copyright 2016
|
|
4
5
|
* @license Apache-2.0
|
|
5
6
|
*/
|
|
@@ -33,6 +34,7 @@ import BLAKE2b from "./BLAKE2b.mjs";
|
|
|
33
34
|
import BLAKE2s from "./BLAKE2s.mjs";
|
|
34
35
|
import Streebog from "./Streebog.mjs";
|
|
35
36
|
import GOSTHash from "./GOSTHash.mjs";
|
|
37
|
+
import OperationError from "../errors/OperationError.mjs";
|
|
36
38
|
|
|
37
39
|
/**
|
|
38
40
|
* Generate all hashes operation
|
|
@@ -51,7 +53,73 @@ class GenerateAllHashes extends Operation {
|
|
|
51
53
|
this.infoURL = "https://wikipedia.org/wiki/Comparison_of_cryptographic_hash_functions";
|
|
52
54
|
this.inputType = "ArrayBuffer";
|
|
53
55
|
this.outputType = "string";
|
|
54
|
-
this.args = [
|
|
56
|
+
this.args = [
|
|
57
|
+
{
|
|
58
|
+
name: "Length (bits)",
|
|
59
|
+
type: "option",
|
|
60
|
+
value: [
|
|
61
|
+
"All", "128", "160", "224", "256", "320", "384", "512"
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: "Include names",
|
|
66
|
+
type: "boolean",
|
|
67
|
+
value: true
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
this.hashes = [
|
|
71
|
+
{name: "MD2", algo: (new MD2()), inputType: "arrayBuffer", params: []},
|
|
72
|
+
{name: "MD4", algo: (new MD4()), inputType: "arrayBuffer", params: []},
|
|
73
|
+
{name: "MD5", algo: (new MD5()), inputType: "arrayBuffer", params: []},
|
|
74
|
+
{name: "MD6", algo: (new MD6()), inputType: "str", params: []},
|
|
75
|
+
{name: "SHA0", algo: (new SHA0()), inputType: "arrayBuffer", params: []},
|
|
76
|
+
{name: "SHA1", algo: (new SHA1()), inputType: "arrayBuffer", params: []},
|
|
77
|
+
{name: "SHA2 224", algo: (new SHA2()), inputType: "arrayBuffer", params: ["224"]},
|
|
78
|
+
{name: "SHA2 256", algo: (new SHA2()), inputType: "arrayBuffer", params: ["256"]},
|
|
79
|
+
{name: "SHA2 384", algo: (new SHA2()), inputType: "arrayBuffer", params: ["384"]},
|
|
80
|
+
{name: "SHA2 512", algo: (new SHA2()), inputType: "arrayBuffer", params: ["512"]},
|
|
81
|
+
{name: "SHA3 224", algo: (new SHA3()), inputType: "arrayBuffer", params: ["224"]},
|
|
82
|
+
{name: "SHA3 256", algo: (new SHA3()), inputType: "arrayBuffer", params: ["256"]},
|
|
83
|
+
{name: "SHA3 384", algo: (new SHA3()), inputType: "arrayBuffer", params: ["384"]},
|
|
84
|
+
{name: "SHA3 512", algo: (new SHA3()), inputType: "arrayBuffer", params: ["512"]},
|
|
85
|
+
{name: "Keccak 224", algo: (new Keccak()), inputType: "arrayBuffer", params: ["224"]},
|
|
86
|
+
{name: "Keccak 256", algo: (new Keccak()), inputType: "arrayBuffer", params: ["256"]},
|
|
87
|
+
{name: "Keccak 384", algo: (new Keccak()), inputType: "arrayBuffer", params: ["384"]},
|
|
88
|
+
{name: "Keccak 512", algo: (new Keccak()), inputType: "arrayBuffer", params: ["512"]},
|
|
89
|
+
{name: "Shake 128", algo: (new Shake()), inputType: "arrayBuffer", params: ["128", 256]},
|
|
90
|
+
{name: "Shake 256", algo: (new Shake()), inputType: "arrayBuffer", params: ["256", 512]},
|
|
91
|
+
{name: "RIPEMD-128", algo: (new RIPEMD()), inputType: "arrayBuffer", params: ["128"]},
|
|
92
|
+
{name: "RIPEMD-160", algo: (new RIPEMD()), inputType: "arrayBuffer", params: ["160"]},
|
|
93
|
+
{name: "RIPEMD-256", algo: (new RIPEMD()), inputType: "arrayBuffer", params: ["256"]},
|
|
94
|
+
{name: "RIPEMD-320", algo: (new RIPEMD()), inputType: "arrayBuffer", params: ["320"]},
|
|
95
|
+
{name: "HAS-160", algo: (new HAS160()), inputType: "arrayBuffer", params: []},
|
|
96
|
+
{name: "Whirlpool-0", algo: (new Whirlpool()), inputType: "arrayBuffer", params: ["Whirlpool-0"]},
|
|
97
|
+
{name: "Whirlpool-T", algo: (new Whirlpool()), inputType: "arrayBuffer", params: ["Whirlpool-T"]},
|
|
98
|
+
{name: "Whirlpool", algo: (new Whirlpool()), inputType: "arrayBuffer", params: ["Whirlpool"]},
|
|
99
|
+
{name: "BLAKE2b-128", algo: (new BLAKE2b), inputType: "arrayBuffer", params: ["128", "Hex", {string: "", option: "UTF8"}]},
|
|
100
|
+
{name: "BLAKE2b-160", algo: (new BLAKE2b), inputType: "arrayBuffer", params: ["160", "Hex", {string: "", option: "UTF8"}]},
|
|
101
|
+
{name: "BLAKE2b-256", algo: (new BLAKE2b), inputType: "arrayBuffer", params: ["256", "Hex", {string: "", option: "UTF8"}]},
|
|
102
|
+
{name: "BLAKE2b-384", algo: (new BLAKE2b), inputType: "arrayBuffer", params: ["384", "Hex", {string: "", option: "UTF8"}]},
|
|
103
|
+
{name: "BLAKE2b-512", algo: (new BLAKE2b), inputType: "arrayBuffer", params: ["512", "Hex", {string: "", option: "UTF8"}]},
|
|
104
|
+
{name: "BLAKE2s-128", algo: (new BLAKE2s), inputType: "arrayBuffer", params: ["128", "Hex", {string: "", option: "UTF8"}]},
|
|
105
|
+
{name: "BLAKE2s-160", algo: (new BLAKE2s), inputType: "arrayBuffer", params: ["160", "Hex", {string: "", option: "UTF8"}]},
|
|
106
|
+
{name: "BLAKE2s-256", algo: (new BLAKE2s), inputType: "arrayBuffer", params: ["256", "Hex", {string: "", option: "UTF8"}]},
|
|
107
|
+
{name: "Streebog-256", algo: (new Streebog), inputType: "arrayBuffer", params: ["256"]},
|
|
108
|
+
{name: "Streebog-512", algo: (new Streebog), inputType: "arrayBuffer", params: ["512"]},
|
|
109
|
+
{name: "GOST", algo: (new GOSTHash), inputType: "arrayBuffer", params: ["D-A"]},
|
|
110
|
+
{name: "SSDEEP", algo: (new SSDEEP()), inputType: "str"},
|
|
111
|
+
{name: "CTPH", algo: (new CTPH()), inputType: "str"}
|
|
112
|
+
];
|
|
113
|
+
this.checksums = [
|
|
114
|
+
{name: "Fletcher-8", algo: (new Fletcher8Checksum), inputType: "byteArray", params: []},
|
|
115
|
+
{name: "Fletcher-16", algo: (new Fletcher16Checksum), inputType: "byteArray", params: []},
|
|
116
|
+
{name: "Fletcher-32", algo: (new Fletcher32Checksum), inputType: "byteArray", params: []},
|
|
117
|
+
{name: "Fletcher-64", algo: (new Fletcher64Checksum), inputType: "byteArray", params: []},
|
|
118
|
+
{name: "Adler-32", algo: (new Adler32Checksum), inputType: "byteArray", params: []},
|
|
119
|
+
{name: "CRC-8", algo: (new CRC8Checksum), inputType: "arrayBuffer", params: ["CRC-8"]},
|
|
120
|
+
{name: "CRC-16", algo: (new CRC16Checksum), inputType: "arrayBuffer", params: []},
|
|
121
|
+
{name: "CRC-32", algo: (new CRC32Checksum), inputType: "arrayBuffer", params: []}
|
|
122
|
+
];
|
|
55
123
|
}
|
|
56
124
|
|
|
57
125
|
/**
|
|
@@ -60,63 +128,74 @@ class GenerateAllHashes extends Operation {
|
|
|
60
128
|
* @returns {string}
|
|
61
129
|
*/
|
|
62
130
|
run(input, args) {
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
"\nKeccak 384: " + (new Keccak()).run(arrayBuffer, ["384"]) +
|
|
83
|
-
"\nKeccak 512: " + (new Keccak()).run(arrayBuffer, ["512"]) +
|
|
84
|
-
"\nShake 128: " + (new Shake()).run(arrayBuffer, ["128", 256]) +
|
|
85
|
-
"\nShake 256: " + (new Shake()).run(arrayBuffer, ["256", 512]) +
|
|
86
|
-
"\nRIPEMD-128: " + (new RIPEMD()).run(arrayBuffer, ["128"]) +
|
|
87
|
-
"\nRIPEMD-160: " + (new RIPEMD()).run(arrayBuffer, ["160"]) +
|
|
88
|
-
"\nRIPEMD-256: " + (new RIPEMD()).run(arrayBuffer, ["256"]) +
|
|
89
|
-
"\nRIPEMD-320: " + (new RIPEMD()).run(arrayBuffer, ["320"]) +
|
|
90
|
-
"\nHAS-160: " + (new HAS160()).run(arrayBuffer, []) +
|
|
91
|
-
"\nWhirlpool-0: " + (new Whirlpool()).run(arrayBuffer, ["Whirlpool-0"]) +
|
|
92
|
-
"\nWhirlpool-T: " + (new Whirlpool()).run(arrayBuffer, ["Whirlpool-T"]) +
|
|
93
|
-
"\nWhirlpool: " + (new Whirlpool()).run(arrayBuffer, ["Whirlpool"]) +
|
|
94
|
-
"\nBLAKE2b-128: " + (new BLAKE2b).run(arrayBuffer, ["128", "Hex", {string: "", option: "UTF8"}]) +
|
|
95
|
-
"\nBLAKE2b-160: " + (new BLAKE2b).run(arrayBuffer, ["160", "Hex", {string: "", option: "UTF8"}]) +
|
|
96
|
-
"\nBLAKE2b-256: " + (new BLAKE2b).run(arrayBuffer, ["256", "Hex", {string: "", option: "UTF8"}]) +
|
|
97
|
-
"\nBLAKE2b-384: " + (new BLAKE2b).run(arrayBuffer, ["384", "Hex", {string: "", option: "UTF8"}]) +
|
|
98
|
-
"\nBLAKE2b-512: " + (new BLAKE2b).run(arrayBuffer, ["512", "Hex", {string: "", option: "UTF8"}]) +
|
|
99
|
-
"\nBLAKE2s-128: " + (new BLAKE2s).run(arrayBuffer, ["128", "Hex", {string: "", option: "UTF8"}]) +
|
|
100
|
-
"\nBLAKE2s-160: " + (new BLAKE2s).run(arrayBuffer, ["160", "Hex", {string: "", option: "UTF8"}]) +
|
|
101
|
-
"\nBLAKE2s-256: " + (new BLAKE2s).run(arrayBuffer, ["256", "Hex", {string: "", option: "UTF8"}]) +
|
|
102
|
-
"\nStreebog-256: " + (new Streebog).run(arrayBuffer, ["256"]) +
|
|
103
|
-
"\nStreebog-512: " + (new Streebog).run(arrayBuffer, ["512"]) +
|
|
104
|
-
"\nGOST: " + (new GOSTHash).run(arrayBuffer, ["D-A"]) +
|
|
105
|
-
"\nSSDEEP: " + (new SSDEEP()).run(str) +
|
|
106
|
-
"\nCTPH: " + (new CTPH()).run(str) +
|
|
107
|
-
"\n\nChecksums:" +
|
|
108
|
-
"\nFletcher-8: " + (new Fletcher8Checksum).run(byteArray, []) +
|
|
109
|
-
"\nFletcher-16: " + (new Fletcher16Checksum).run(byteArray, []) +
|
|
110
|
-
"\nFletcher-32: " + (new Fletcher32Checksum).run(byteArray, []) +
|
|
111
|
-
"\nFletcher-64: " + (new Fletcher64Checksum).run(byteArray, []) +
|
|
112
|
-
"\nAdler-32: " + (new Adler32Checksum).run(byteArray, []) +
|
|
113
|
-
"\nCRC-8: " + (new CRC8Checksum).run(arrayBuffer, ["CRC-8"]) +
|
|
114
|
-
"\nCRC-16: " + (new CRC16Checksum).run(arrayBuffer, []) +
|
|
115
|
-
"\nCRC-32: " + (new CRC32Checksum).run(arrayBuffer, []);
|
|
131
|
+
const [length, includeNames] = args;
|
|
132
|
+
this.inputArrayBuffer = input;
|
|
133
|
+
this.inputStr = Utils.arrayBufferToStr(input, false);
|
|
134
|
+
this.inputByteArray = new Uint8Array(input);
|
|
135
|
+
|
|
136
|
+
let digest, output = "";
|
|
137
|
+
// iterate over each of the hashes
|
|
138
|
+
this.hashes.forEach(hash => {
|
|
139
|
+
digest = this.executeAlgo(hash.algo, hash.inputType, hash.params || []);
|
|
140
|
+
output += this.formatDigest(digest, length, includeNames, hash.name);
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
if (length === "All") {
|
|
144
|
+
output += "\nChecksums:\n";
|
|
145
|
+
this.checksums.forEach(checksum => {
|
|
146
|
+
digest = this.executeAlgo(checksum.algo, checksum.inputType, checksum.params || []);
|
|
147
|
+
output += this.formatDigest(digest, length, includeNames, checksum.name);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
116
150
|
|
|
117
151
|
return output;
|
|
118
152
|
}
|
|
119
153
|
|
|
154
|
+
/**
|
|
155
|
+
* Executes a hash or checksum algorithm
|
|
156
|
+
*
|
|
157
|
+
* @param {Function} algo - The hash or checksum algorithm
|
|
158
|
+
* @param {string} inputType
|
|
159
|
+
* @param {Object[]} [params=[]]
|
|
160
|
+
* @returns {string}
|
|
161
|
+
*/
|
|
162
|
+
executeAlgo(algo, inputType, params=[]) {
|
|
163
|
+
let digest = null;
|
|
164
|
+
switch (inputType) {
|
|
165
|
+
case "arrayBuffer":
|
|
166
|
+
digest = algo.run(this.inputArrayBuffer, params);
|
|
167
|
+
break;
|
|
168
|
+
case "str":
|
|
169
|
+
digest = algo.run(this.inputStr, params);
|
|
170
|
+
break;
|
|
171
|
+
case "byteArray":
|
|
172
|
+
digest = algo.run(this.inputByteArray, params);
|
|
173
|
+
break;
|
|
174
|
+
default:
|
|
175
|
+
throw new OperationError("Unknown hash input type: " + inputType);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
return digest;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Formats the digest depending on user-specified arguments
|
|
183
|
+
* @param {string} digest
|
|
184
|
+
* @param {string} length
|
|
185
|
+
* @param {boolean} includeNames
|
|
186
|
+
* @param {string} name
|
|
187
|
+
* @returns {string}
|
|
188
|
+
*/
|
|
189
|
+
formatDigest(digest, length, includeNames, name) {
|
|
190
|
+
if (length !== "All" && (digest.length * 4) !== parseInt(length, 10))
|
|
191
|
+
return "";
|
|
192
|
+
|
|
193
|
+
if (!includeNames)
|
|
194
|
+
return digest + "\n";
|
|
195
|
+
|
|
196
|
+
return `${name}:${" ".repeat(13-name.length)}${digest}\n`;
|
|
197
|
+
}
|
|
198
|
+
|
|
120
199
|
}
|
|
121
200
|
|
|
122
201
|
export default GenerateAllHashes;
|
|
@@ -45,6 +45,7 @@ import "./tests/DateTime.mjs";
|
|
|
45
45
|
import "./tests/ExtractEmailAddresses.mjs";
|
|
46
46
|
import "./tests/Fork.mjs";
|
|
47
47
|
import "./tests/FromDecimal.mjs";
|
|
48
|
+
import "./tests/GenerateAllHashes.mjs";
|
|
48
49
|
import "./tests/Gzip.mjs";
|
|
49
50
|
import "./tests/Gunzip.mjs";
|
|
50
51
|
import "./tests/Hash.mjs";
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GenerateAllHashes tests.
|
|
3
|
+
*
|
|
4
|
+
* @author john19696 [john19696@protonmail.com]
|
|
5
|
+
* @copyright Crown Copyright 2022
|
|
6
|
+
* @license Apache-2.0
|
|
7
|
+
*/
|
|
8
|
+
import TestRegister from "../../lib/TestRegister.mjs";
|
|
9
|
+
|
|
10
|
+
TestRegister.addTests([
|
|
11
|
+
{
|
|
12
|
+
name: "Full generate all hashes",
|
|
13
|
+
input: "test",
|
|
14
|
+
expectedOutput: `MD2: dd34716876364a02d0195e2fb9ae2d1b
|
|
15
|
+
MD4: db346d691d7acc4dc2625db19f9e3f52
|
|
16
|
+
MD5: 098f6bcd4621d373cade4e832627b4f6
|
|
17
|
+
MD6: 93c8a7d0ff132f325138a82b2baa98c12a7c9ac982feb6c5b310a1ca713615bd
|
|
18
|
+
SHA0: f8d3b312442a67706057aeb45b983221afb4f035
|
|
19
|
+
SHA1: a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
|
|
20
|
+
SHA2 224: 90a3ed9e32b2aaf4c61c410eb925426119e1a9dc53d4286ade99a809
|
|
21
|
+
SHA2 256: 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
|
|
22
|
+
SHA2 384: 768412320f7b0aa5812fce428dc4706b3cae50e02a64caa16a782249bfe8efc4b7ef1ccb126255d196047dfedf17a0a9
|
|
23
|
+
SHA2 512: ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
|
|
24
|
+
SHA3 224: 3797bf0afbbfca4a7bbba7602a2b552746876517a7f9b7ce2db0ae7b
|
|
25
|
+
SHA3 256: 36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80
|
|
26
|
+
SHA3 384: e516dabb23b6e30026863543282780a3ae0dccf05551cf0295178d7ff0f1b41eecb9db3ff219007c4e097260d58621bd
|
|
27
|
+
SHA3 512: 9ece086e9bac491fac5c1d1046ca11d737b92a2b2ebd93f005d7b710110c0a678288166e7fbe796883a4f2e9b3ca9f484f521d0ce464345cc1aec96779149c14
|
|
28
|
+
Keccak 224: 3be30a9ff64f34a5861116c5198987ad780165f8366e67aff4760b5e
|
|
29
|
+
Keccak 256: 9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658
|
|
30
|
+
Keccak 384: 53d0ba137307d4c2f9b6674c83edbd58b70c0f4340133ed0adc6fba1d2478a6a03b7788229e775d2de8ae8c0759d0527
|
|
31
|
+
Keccak 512: 1e2e9fc2002b002d75198b7503210c05a1baac4560916a3c6d93bcce3a50d7f00fd395bf1647b9abb8d1afcc9c76c289b0c9383ba386a956da4b38934417789e
|
|
32
|
+
Shake 128: d3b0aa9cd8b7255622cebc631e867d4093d6f6010191a53973c45fec9b07c774
|
|
33
|
+
Shake 256: b54ff7255705a71ee2925e4a3e30e41aed489a579d5595e0df13e32e1e4dd202a7c7f68b31d6418d9845eb4d757adda6ab189e1bb340db818e5b3bc725d992fa
|
|
34
|
+
RIPEMD-128: f1abb5083c9ff8a9dbbca9cd2b11fead
|
|
35
|
+
RIPEMD-160: 5e52fee47e6b070565f74372468cdc699de89107
|
|
36
|
+
RIPEMD-256: fe0289110d07daeee9d9500e14c57787d9083f6ba10e6bcb256f86bb4fe7b981
|
|
37
|
+
RIPEMD-320: 3b0a2e841e589cf583634a5dd265d2b5d497c4cc44b241e34e0f62d03e98c1b9dc72970b9bc20eb5
|
|
38
|
+
HAS-160: cb15e491eec6e769771d1f811315139c93071084
|
|
39
|
+
Whirlpool-0: d50ff71342b521974bae166539871922669afcfc7181250ebbae015c317ebb797173a69e7a05afd11099a9f0918159cd5bc88434d3ca44513d7263caea9244fe
|
|
40
|
+
Whirlpool-T: e6b4aa087751b4428171777f1893ba585404c7e0171787720eba0d8bccd710dc2c42f874c572bfae4cedabf50f2c80bf923805d4e31c504b86ca3bc59265e7dd
|
|
41
|
+
Whirlpool: b913d5bbb8e461c2c5961cbe0edcdadfd29f068225ceb37da6defcf89849368f8c6c2eb6a4c4ac75775d032a0ecfdfe8550573062b653fe92fc7b8fb3b7be8d6
|
|
42
|
+
BLAKE2b-128: 44a8995dd50b6657a037a7839304535b
|
|
43
|
+
BLAKE2b-160: a34fc3b6d2cce8beb3216c2bbb5e55739e8121ed
|
|
44
|
+
BLAKE2b-256: 928b20366943e2afd11ebc0eae2e53a93bf177a4fcf35bcc64d503704e65e202
|
|
45
|
+
BLAKE2b-384: 8a84b8666c8fcfb69f2ec41f578d7c85fbdb504ea6510fb05b50fcbf7ed8153c77943bc2da73abb136834e1a0d4f22cb
|
|
46
|
+
BLAKE2b-512: a71079d42853dea26e453004338670a53814b78137ffbed07603a41d76a483aa9bc33b582f77d30a65e6f29a896c0411f38312e1d66e0bf16386c86a89bea572
|
|
47
|
+
BLAKE2s-128: e9ddd9926b9dcb382e09be39ba403d2c
|
|
48
|
+
BLAKE2s-160: d6197dabec2bd6f4ff303b8e519e8f15d42a453d
|
|
49
|
+
BLAKE2s-256: f308fc02ce9172ad02a7d75800ecfc027109bc67987ea32aba9b8dcc7b10150e
|
|
50
|
+
Streebog-256: 12a50838191b5504f1e5f2fd078714cf6b592b9d29af99d0b10d8d02881c3857
|
|
51
|
+
Streebog-512: 7200bf5dea560f0d7960d07fdc8874ad9f3b86ece2e45f5502ae2e176f2c928e0e581152281f5aee818318bed7cbe6aa69999589234723ceb33175598365b5c8
|
|
52
|
+
GOST: ee67303696d205ddd2b2363e8e01b4b7199a80957d94d7678eaad3fc834c5a27
|
|
53
|
+
SSDEEP: 3:Hn:Hn
|
|
54
|
+
CTPH: A:E:E
|
|
55
|
+
|
|
56
|
+
Checksums:
|
|
57
|
+
Fletcher-8: 3d
|
|
58
|
+
Fletcher-16: 5dc1
|
|
59
|
+
Fletcher-32: 045901c0
|
|
60
|
+
Fletcher-64: 00000459000001c0
|
|
61
|
+
Adler-32: 045d01c1
|
|
62
|
+
CRC-8: b9
|
|
63
|
+
CRC-16: f82e
|
|
64
|
+
CRC-32: d87f7e0c
|
|
65
|
+
`,
|
|
66
|
+
recipeConfig: [
|
|
67
|
+
{
|
|
68
|
+
"op": "Generate all hashes",
|
|
69
|
+
"args": ["All", true]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
name: "Hashes with length 32",
|
|
75
|
+
input: "test",
|
|
76
|
+
expectedOutput: `MD2: dd34716876364a02d0195e2fb9ae2d1b
|
|
77
|
+
MD4: db346d691d7acc4dc2625db19f9e3f52
|
|
78
|
+
MD5: 098f6bcd4621d373cade4e832627b4f6
|
|
79
|
+
RIPEMD-128: f1abb5083c9ff8a9dbbca9cd2b11fead
|
|
80
|
+
BLAKE2b-128: 44a8995dd50b6657a037a7839304535b
|
|
81
|
+
BLAKE2s-128: e9ddd9926b9dcb382e09be39ba403d2c
|
|
82
|
+
`,
|
|
83
|
+
recipeConfig: [
|
|
84
|
+
{
|
|
85
|
+
"op": "Generate all hashes",
|
|
86
|
+
"args": ["128", true]
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: "Hashes without names",
|
|
92
|
+
input: "test",
|
|
93
|
+
expectedOutput: `93c8a7d0ff132f325138a82b2baa98c12a7c9ac982feb6c5b310a1ca713615bd
|
|
94
|
+
9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
|
|
95
|
+
36f028580bb02cc8272a9a020f4200e346e276ae664e45ee80745574e2f5ab80
|
|
96
|
+
9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658
|
|
97
|
+
d3b0aa9cd8b7255622cebc631e867d4093d6f6010191a53973c45fec9b07c774
|
|
98
|
+
fe0289110d07daeee9d9500e14c57787d9083f6ba10e6bcb256f86bb4fe7b981
|
|
99
|
+
928b20366943e2afd11ebc0eae2e53a93bf177a4fcf35bcc64d503704e65e202
|
|
100
|
+
f308fc02ce9172ad02a7d75800ecfc027109bc67987ea32aba9b8dcc7b10150e
|
|
101
|
+
12a50838191b5504f1e5f2fd078714cf6b592b9d29af99d0b10d8d02881c3857
|
|
102
|
+
ee67303696d205ddd2b2363e8e01b4b7199a80957d94d7678eaad3fc834c5a27
|
|
103
|
+
`,
|
|
104
|
+
recipeConfig: [
|
|
105
|
+
{
|
|
106
|
+
"op": "Generate all hashes",
|
|
107
|
+
"args": ["256", false]
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
]);
|