|
@@ -35,6 +35,17 @@ class AnalyseHash extends Operation {
|
|
run(input, args) {
|
|
run(input, args) {
|
|
input = input.replace(/\s/g, "");
|
|
input = input.replace(/\s/g, "");
|
|
|
|
|
|
|
|
+ // analyze hash if it is bcrypt
|
|
|
|
+ if (/^\$2[abxy]?\$[0-9]+\$[a-zA-Z0-9/.]{53}$/.test(input)) {
|
|
|
|
+ input = input.split("$");
|
|
|
|
+ return "Hash algorithm Identifier: $" + input[1] + "$\n" +
|
|
|
|
+ "Rounds: " + input[2] + "\n" +
|
|
|
|
+ "Base64 encoded Input salt(22 bytes): " + input[3].slice(0, 22) + "\n" +
|
|
|
|
+ "Base64 encoded hash(31 bytes): " + input[3].slice(22) + "\n\n" +
|
|
|
|
+ "Based on the length, this hash could have been generated by one of the following hashing functions:\n" +
|
|
|
|
+ "bcrypt";
|
|
|
|
+ }
|
|
|
|
+
|
|
let output = "",
|
|
let output = "",
|
|
possibleHashFunctions = [];
|
|
possibleHashFunctions = [];
|
|
const byteLength = input.length / 2,
|
|
const byteLength = input.length / 2,
|