Hashcat ======= `hello` as md5, candidate=hello:: hashcat -a3 -m0 -o2 -w2 -O -D2 $(echo -n hello | md5sum | awk '{ print $1 }') hello `hello` as md5, `candidate=`:: hashcat -a3 -m0 -o2 -w2 -O -D2 $(echo -n hello | md5sum | awk '{ print $1 }') '?l?l?l?l?l' `` as md5, `candidate=`:: s=$(pwgen --no-numerals --no-capitalize 5 1) echo $s echo ===== hashcat -a3 -m0 -o2 -w2 -O -D2 $(echo -n $s | md5sum | awk '{ print $1 }') '?l?l?l?l?l' `` as md5, `candidate=` --> seconds:: n=8 s=$(pwgen --no-numerals --no-capitalize $n 1) echo $s echo ===== hashcat -a3 -m0 -o2 -w2 -O -D2 $(echo -n $s | md5sum | awk '{ print $1 }') $(python -c "print('?l'*$n)") `` as md5, `candidate=` --> XXX:: n=8 s=$(pwgen --numerals --no-capitalize $n 1) # pw as input: # read -p 'Password: ' -s s cs=?l?d echo $s echo ===== hashcat -1 $cs -a3 -m0 -o2 -w2 -O -D2 $(echo -n $s | md5sum | awk '{ print $1 }') $(python -c "print('?1'*$n)") `` as md5, `candidate=` --> ~2h:: n=8 s=$(pwgen --numerals --capitalize $n 1) cs=?l?u?d echo $s echo ===== hashcat -1 $cs -a3 -m0 -o2 -w2 -O -D2 $(echo -n $s | md5sum | awk '{ print $1 }') $(python -c "print('?1'*$n)") syntax: https://hashcat.net/wiki/doku.php?id=mask_attack TBD: firefox master hash: https://github.com/lclevy/firepwd/blob/master/mozilla_pbe.pdf :: cd ~/.mozilla/firefox/*.default/ file key4.db # key4.db: SQLite 3.x database