Basic registration system

generate a random number, encode as base64 and concatenate the base64
string with the user's password; hash concatenated password and store
the hash and salt in the db