I'm using John to generate some word lists and I'm trying to figure out the most optimized way to do the next step. What I want to do is add ever possible 3 digit number to a set where the first digit of the number is not the same as the first digit in the set

Set example 123ABC

to add

+ 213 = 123ABC213 OK

+ 131 = 123ABC131 REJECT

I see rules that reject unless a string includes, but not a comparison function like this.

I could make the whole list and prune it after with a python script, but it would be way bigger than needed.

Thank you!

  • Can you speak more to why you're building wordlists externally, and/or what the target framework is that will be consuming the wordlist? If you're using hashcat, and using a reasonably fast hash, generating them on-GPU is likely to be more efficient (faster, less disk space, etc.) May 23, 2020 at 14:44

1 Answer 1


You can make Hashcat output the list to stdout and pipe the output to a python script that filters it, then pipe the output to another instance of Hashcat (or John).

hashcat --stdout [list generation options] | python_filter | hashcat -a 0 -m HASH_TYPE HASH_FILE

I am not aware of rules in hashcat that would do this comparison, I hope this helps.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.