mysql - Can't get password encryption to work PHP -
i have been messing around password encryption in php , @ first using md5 function save passwords in database, ran trouble logging in. tried hash function , again had trouble logging in.
the way attempting have password encrypted when account made, , every time logs in, password encrypted again using same method , checks database see if encrypted passwords match. can create account fine , seems whenever create account same password, hashes same assuming don't change each time (i have little knowledge on encryption , hashes).
this current new user creation snippet:
<?php  if ((isset($_post["mm_insert"])) && ($_post["mm_insert"] == "newuser")) {   $insertsql = sprintf("insert users (username, password, name) values (%s, %s, %s)",                        getsqlvaluestring($_post['username'], "text"),                        getsqlvaluestring(hash("sha512",$_post['password']), "text"),                        getsqlvaluestring($_post['name'], "text"));    mysql_select_db($database_reallygoodpieconnection, $reallygoodpieconnection);   $result1 = mysql_query($insertsql, $reallygoodpieconnection) or die(mysql_error());  ?> and login snippet:
if (isset($_post['username'])) {   $loginusername=$_post['username'];   $password=$_post['password'];   $password = hash("sha512", $password);   print $password;   $mm_flduserauthorization = "permissions";   $mm_redirectloginsuccess = "index.php";   $mm_redirectloginfailed = "login.php";   $mm_redirecttoreferrer = true;   mysql_select_db($database_reallygoodpieconnection, $reallygoodpieconnection);    $loginrs__query=sprintf("select username, password users username=%s , password=%s",     getsqlvaluestring($loginusername, "text"), getsqlvaluestring($password, "text") can me understand why actual login failing. using exact same password creation , login (obviously) , using same encryption methods. confusing me.
"i can create account fine , seems whenever create account same password, hashes same assuming don't change each time"
of course has that. bad thing if encrypted hash same string change everytime, wouldn't it? :)
users wouldn't able use password more 1 time then. it's okay.
also consider salting password. means: generate random hash , store in database user.
when logging in you're not check against password hash, against salt.
that'll improve security lot more.
Comments
Post a Comment