Rainbow files, or tables, are a list of MD5 hash values and the plaintext used to create them. Since MD5 hash values are virtually impossible to reverse engineer, having a list of precompiled hash values with the original plaintext allows for simple indexed lookup.
MD5Rainbow.exe can produce a unique MD5 hash for single blocks of plaintext and will accept a dictionary file for processing into a rainbow file.
Dictionary files must contain one target word or phrase per line. The resulting rainbow file contains the MD5 hash followed by the original plaintext, separated by a comma.
"The
algorithm takes as input a message of arbitrary length and produces
as output a 128-bit "fingerprint" or "message digest" of the input.
It is conjectured that it is computationally infeasible to produce
two messages having the same message digest, or to produce any
message having a given prespecified target message digest. The MD5
algorithm is intended for digital signature applications, where a
large file must be "compressed" in a secure manner before being
encrypted with a private (secret) key under a public-key cryptosystem
such as RSA."
More
MD5 hash code rainbow maker is a wysiwyg program with very few user friendly controls. There are no function error checks. If you try to crash the program you will succeed.
MD5Rainbow.exe uses md5functs.dll, a small library for 32 bit functions. A couple of minor functions which manipulate full 32 bit numbers are within the VB project. However, the bulk of 32 bit processing was moved to a library for ease of programming and reliability of results. The full assembly source is available in the download. No comments are supplied as none were written for this simple set of functions.
Colin Fiat Oct 2010