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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .