ABOUT

This C application will crack passwords encrypted with DES by utilizing the DES algorithm itself as well as an English dictionary attack. If the dictionary attack fails, it will try every possible combination of 8 ASCII characters. I built this as part of the free CS50 online course through Harvard.

DES is basically deprecated, but it's still a good case-study in how encryption works and why we don't use these old methods anymore.

INSTRUCTIONS

The only argument this program takes is any DES-encrypted password. That will look something like this:

$1$XwuJOpl1$//7kecTERKC3sKTv.FhKi/

It will return the decrypted password to the system's out stream.

DES

Passwords up to and including 8 characters have unique encryption through DES, since only the first 8 characters of a password are used in DES encryption. Because of this, software will usually ask you to limit your password to 8 characters.

So, if your password is is superlongpasswordthatnobodywillcrack, encrypting it with DES will yield the same result as encrypting superlon, superlong, or superlongaberger.

Likewise, since this application utilizes the DES algorithm to crack passwords, if you encrypted superlongpasswordthatnobodywillcrack, my application will only return the first 8 characters, superlon.