How MD5 works:

You see, first you take your standard string.. And then you MD5 it.

It generates a unique MD5 key, that can only be generated by making the EXACT same
string again.  The MD5 key is 16 characters long in a standard MD5 key.

So, you take a string, 40 characters long, and it turns into a 16 character long string
that is impossible to reverse into what it was, unless you know the string itself.

MD5 is considered one way encryption.  And is VERY powerful.

Here is an example of how this would work on a pfile


pwd = handle_md5(argument);

now pwd is like FG8MNIIO1EeRtPO

So that gets put in your pfile and saved encrypted.

So now, you go into your lovely login.

punch in the password.. and compare the strings.

ie..

if(str_cmp(ch->pcdata->pwd, handle_md5(argument))
{
	// Wrong password here
	return;
}

	// If we are here.. right password

It takes the string, and simply compares it, , if you were to punch in

the MD5 key as your password, it would be incorrect, because it would then 

md5 it, and wouldn't match, so passwords have to be exact to match.. Simple example :)


Now, the reason this is used with the keygen system.. Well, the keygen system is HUGE.
I've seen keygens as large as 4000 characters, it is in your best interest to MD5 these
strings, so that the loading of pfiles doesn't take forever when it hits objects.

Remember, MD5 will cut down on the size of these strings, and make those keygens worth
every penny you spent on them.  Plus, it will just aid you even further in the smart department.