I am using mcrypt to encrypt a password.
$key = 'super password key';
$data = 'super duper encrypted password';
$alg = MCRYPT_DES;
$mode = MCRYPT_MODE_CBC;
$iv = mcrypt_create_iv(mcrypt_get_iv_size($alg,$mode),MCRYPT_DEV_URANDOM);
$encrypted_data = mcrypt_encrypt($alg,$key,$data,$mode,$iv);
$plain_text = base64_encode($encrypted_data);
If i then decrypt it on the page it works fine:
$decrypted_data = mcrypt_decrypt($alg,$key,base64_decode($plain_text),$mode,$iv);
If i echo $decypted_data to the page it prints it out exactly as it should:
super duper encrypted password
However, if I put the value from $plain_text into a mysql database and then read it back using:
include ("dbconnector.php");
$query = "SELECT * FROM `site_users`";
$results = mysql_query($query) or die("Error: " . mysql_error());
$query_data = mysql_fetch_array($results);
//$username = $query_data["users_username"];
$username = $query_data["users_username"];
$password = $query_data["users_password"];
$decrypted_username = mcrypt_decrypt($alg,$key,base64_decode($username),$mode,$iv);
Then when I echo $decrypted username back to the page it doesnt decrypt the first part of the string
Ÿkjª9Øýper encrypted password
Any ideas 😕