bruteforcejs
Version:
JavaScript bruteforce module.
39 lines (30 loc) • 1.02 kB
text/typescript
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++
}
}