Hi,

I've been experimenting a little with dictionary attacks against password 
hashes.

It turned out that Python is plenty fast for this task, if you use precomputed 
hash
databases. I used a few rather large dictionary files (most of the words of the 
English
language, and most of the words of the Dutch language including derived forms) 
for a
total of almost 600,000 precomputed hashes. With that the program can "crack" 
10,000
password hashes in under a second on my 3 year old PC.

I've also used a list of 600 'most commonly used' passwords that I gathered 
from a few
sources. That list is used to generate a couple of variations, such as 
prefixing them
with a digit, or typing the word in uppercase, etc. I did this to be able to 
quickly
scan for the most common passwords, but it turned out that using all of the 
600,000
precomputed hashes isn't much slower for the experiments that I did.
The variations however increase the hit rate because words like "Jennifer9" are 
not in a
normal dictionary file. This one however *is* part of the 'most common' list.
So if that is your password, go change it right now ;-)


I thought the code I wrote might interest other people as well, so I share it 
here:
(It should run on Python 2.6 and up, including Python 3.x.)

Download:
http://www.razorvine.net/download/dictionary_attack/

Or by Subversion:
svn://svn.razorvine.net/Various/PythonStuff/trunk/dictionaryattack


Have fun,
Irmen de Jong
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to