You want to use MD5 as a method for encrypting passwords.
Many modern systems support the use of MD5 for encrypting passwords.
An encoding known as
Modular Crypt Format (MCF) is used to
allow the use of the traditional
crypt( ) function
to handle the old DES encryption as well as MD5 and any number of
other possible algorithms.
On systems that support MCF through
), you can simply use
crypt( ) as discussed in Recipe 8.9 with some
modification to the required salt. Otherwise, you can use the
implementation in this recipe.
What we are doing here isn’t really encrypting a password. Actually, we are creating a password validator. We use the term encryption because it is in common use and is a more concise way to explain the process.
MCF is a 7-bit encoding that allows for encoding multiple fields into a single string. A dollar sign delimits each field, with the first field indicating the algorithm to use by way of a predefined number. At present, only two well-known algorithms are defined: 1 indicates MD5 and 2 indicates Blowfish. The contents of the first field also dictate how many fields should follow and the type of data each one contains. The first character in an MCF string is always a dollar sign, which technically leaves the 0th field empty.
For encoding MD5 in MCF, the first field must contain a 1, and two additional fields must follow: the first is the salt, and the second is the ...