bruteforcejs
Version:
JavaScript bruteforce module.
36 lines (35 loc) • 1.11 kB
JavaScript
;
module.exports = (characters, callback, maxLength = -1) => {
let i = 1;
if (typeof characters == "string")
characters = characters.split(""); // If input: typeof string => split into array
// Sort characters
characters.sort();
characters = characters.filter(function (value, index, arr) {
if (index < 1) {
return true;
}
else {
return value != arr[index - 1];
}
});
characters = [""].concat(characters); // Cleanup
const getBruteforceString = (idx) => {
let charBasedString = "";
let mod;
while (idx > 0) {
mod = idx % characters.length;
charBasedString = characters[mod] + charBasedString;
idx = (idx - mod) / characters.length;
}
return charBasedString;
};
while (i > 0) {
let result = callback(getBruteforceString(i));
if (result)
break;
if (maxLength >= 1 && getBruteforceString(i).length > maxLength)
break;
i++;
}
};