login/register с MD5 php/mysql

kosioooooooo

Registered
от няколко дена пиша система за логин сложил съм малко екстри защитил съм кода от sql injection , изпраща се e-mail при регистрация, има админ панел и така нататък ,но ми остана едни проблем когато даден потребител се регистрира паролата му се записва в md5 в базата и когато трябва да се логне трябва да пише целия md5 защото инъче паролите несъответстват може ли някой да ми помогне как да премахна това?
 
Значи сравняваш написаната парола, която е в DB тя е хеширана с md5 с написаната от формата.
Като тази от формата и нея я минаваш първо през md5 :)
Примерно ако name във формата ти е pass
Пример:
<input type="password" name="pass">

Трябва да стане така
$pass = md5($_POST['pass']);

После да кажем, че в променлива $pass_db ти е паролата от бд само сравняваш:
if ($pass_db == $pass)
{
// даваш достъп
}

Дано да ти е станало ясно :)
 
Човека си пише паролата и ти после просто я взимаш така:

$password = md5($_POST['password']);

Надявам се да разбра какво имам предвид, защото малко тъпо го обясних :)
 
При вход пак му криптираш паролата с md5 и така пак стават еднакви....
 
Мерсиииии първо бях объркал защото бях го направил да се генерира произволен хаш и да се сравнява с този в базата голяма глупост ама и вчера не съм спал де и недовиждам така :D Мерси на всички !
ето как го реших въпроса ;]
Код:
<?php 
ob_start(); 
include "inc/config.php"; 
$db_conn = mysql_connect("$dbhostname", "$dbusername", "$dbpass") 
or die("Неможе да се свърже с базата"); 
mysql_select_db("$db", $db_conn) or die("неможе да избере база"); 
If($_POST['submit']){}
else{
$username=$_POST['username']; 
$password=md5(md5($_POST['password'])); 
$sql="SELECT * FROM users WHERE username='$username' and password='$password'"; 
$result=mysql_query($sql); 
$count=mysql_num_rows($result); 
if($count==1) 
{ 
session_register("username"); 
session_register("password"); 
header("location:profile.php"); 
} 
else 
{ 
echo "Потребителското име или паролата са грешни"; 
} 
}

ob_end_flush(); 
?>
 
Хмм, въпрос!

Защо 2 пъти хешираш паролата от полето:
$password=md5(md5($_POST['password']));

Двойна сигурност :P
 
HunteR каза:
Хмм, въпрос!

Защо 2 пъти хешираш паролата от полето:
$password=md5(md5($_POST['password']));

Двойна сигурност :P
Ами ако е hash-ната паролата само един път както е във phpbb например
паролата може да бъде лесно crack-ната (не е 100% сигурно кракването но може да се направи опит и особено ако е с rainbow таблици тогава става буквално за секунди) затова си hash-вам паролите по 2 пъти и бях прочел някъде че е ефективно ;]
 
kosioooooooo каза:
HunteR каза:
Хмм, въпрос!

Защо 2 пъти хешираш паролата от полето:
$password=md5(md5($_POST['password']));

Двойна сигурност :P
Ами ако е hash-ната паролата само един път както е във phpbb например
паролата може да бъде лесно crack-ната (не е 100% сигурно кракването но може да се направи опит и особено ако е с rainbow таблици тогава става буквално за секунди) затова си hash-вам паролите по 2 пъти и бях прочел някъде че е ефективно ;]
Хах, ОК. Ти си знаеш ;)
 

Back
Горе