UNPKG

bruteforcejs

Version:

JavaScript bruteforce module.

39 lines (30 loc) 1.02 kB
module.exports = (characters: string | string[], callback: any, maxLength: number = -1) => { let i: number = 1 if (typeof characters == "string") characters = characters.split("") // If input: typeof string => split into array // Sort characters characters.sort() characters = characters.filter(function(value: string, index: number, arr: string[]) { if (index < 1) { return true } else { return value != arr[index - 1] } }) characters = [""].concat(characters) // Cleanup const getBruteforceString = (idx: number) => { 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++ } }