Just to add the reason peio has inserted the variable $your_pass into the md5 function argument list...
MD5 is no more secure from brute force attacks than the crypt function, you can take a dictionary list, and run md5() over each word, and compare it to the encrypted string.. However, by adding an additional string of characters to the end of the users password, you effectively remove the chance a brute force attacker may have if they have a copy of your user's passwords.
However, once you use an additional string of characters in an md5 hash, you can NOT change that additional string later, because passwords will be completely different later on...
eg:
$userpass = 'helloworld';
$hash = 'thehash';
$encpass = md5($userpass.$hash);
//$encpass = e12b7d5447d8363a636212e3ab6874eb
so you would store e12b7d5447d8363a636212e3ab6874eb in the database...
however, if you later change the $hash variable to ANYTHING else, eg
$userpass = 'helloworld';
$hash = 'oopsichangedthehash';
$encpass = md5($userpass.$hash);
//$encpass = 798299d8b01915ec5a1e2b76442d7747
even though you may think it would still work, the store password is
e12b7d5447d8363a636212e3ab6874eb
yet the one php is providing to mysql is 798299d8b01915ec5a1e2b76442d7747
if you ever change your $hash variable, you need to generate a new password for every single user, and then mail them the new password
Sorry for the long winded post.