John the Ripper is a password cracker, currently available for UNIX, DOS, WinNT and Win95. Its primary purpose is to detect weak UNIX passwords. It has been tested with Linux x86/Alpha/SPARC, FreeBSD x86, OpenBSD x86, Solaris 2.x SPARC and x86, Digital UNIX, AIX, HP-UX, and IRIX.
It contains a lot of features and performance optimizations over the well-known "Crack" password cracker. John the Ripper combines several cracking modes in one program, and is fully configurable for your particular needs (you can even define a custom-cracking mode using the built-in compiler supporting a subset of the C programming language). Also, John is available for several different platforms, which enables you to use the same cracker everywhere (for example, you can even continue a cracking session that you started on another platform). Out of the box, John supports (and autodetects) the following ciphertext formats: standard and double-length DES-based, BSDI's extended DES-based, FreeBSD's (and not only) MD5-based, and OpenBSD's Blowfish-based.
With just one extra command (required to extract the passwords), John can crack AFS passwords and WinNT LM hashes.
Unlike other crackers, John doesn't use a crypt(3)-style routine. Instead, it has its own highly optimized modules for different ciphertext formats and architectures. Some of the algorithms used couldn't be implemented in a crypt(3)-style routine: they require a more powerful interface (bitslice DES is an example). Additionally, there're assembly routines for several processors and architectures (special Intel Pentium version, x86 with MMX, generic x86, Alpha EV4, SPARC V8).