I have problem to construct advanced mask to crack hash of 7zip file. The password have 16 chars where are all lower, upper, decimal and !@#$%-_=+:

Main information is that any char can't duplicate and I want to know how add this to cracking rules. It will reduce time to brake the password.

Exactly don't know -1 value is correct, more precisely range [!@#$%-_=+:]

Command looks:

john --mask=?1 -1=?l?u?d[!@#$%-_=+:] -min-len=16 -max-len=16 test.ctx.hash

1 Answer 1


You'll need to repeat the '?1' 16 times - one for each position:

john --mask=?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1 -1=?l?u?d[!@#$%-_=+:] test.ctx.hash

This won't eliminate the duplicates, but I wouldn't worry about that; the keyspace is so large that eliminating those duplicates will have insignificant impact on the overall runtime.

More generally, the keyspace is so large that you will never actually crack such a password.

  • Yea, I was calculate that 95(ascii printable chars)^16(password chars) gives 4,4*10^31 combinations. I should have a machine whose doing more than 10^25 and then it takes 50 days. I must write more specific mask, but I don't remember the password completely. First Latter was ! probably... I must find another way to extract file from archive .ctx (.7z) Commented Oct 11, 2019 at 5:40

You must log in to answer this question.

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