Md5 Wachtwoord login.
Dag allen,
Ik heb een registreer page gemaakt welke de wachtwoorden als MD5 in de database zet. Dit zijn dus niet de wachtwoorden die de mensen hebben gegeven. Nu wil ik voor de login deze md5 wachtwoorden uit de database terughalen naar de wachtwoorden die normale mensen hebben gegeven. wat moet ik in deze code veranderen zodat hij md5 converteert naar wat de mensen hadden.
if( isset($_POST["login"]))
{
$query = mysql_query("select * from gebruikers where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = $_POST["wachtwoord"];
if($wachtwoord1 == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=inloggenhome.php\">";
}
else
Ik heb een registreer page gemaakt welke de wachtwoorden als MD5 in de database zet. Dit zijn dus niet de wachtwoorden die de mensen hebben gegeven. Nu wil ik voor de login deze md5 wachtwoorden uit de database terughalen naar de wachtwoorden die normale mensen hebben gegeven. wat moet ik in deze code veranderen zodat hij md5 converteert naar wat de mensen hadden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
if( isset($_POST["login"]))
{
$query = mysql_query("select * from gebruikers where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = $_POST["wachtwoord"];
if($wachtwoord1 == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=inloggenhome.php\">";
}
else
Gewijzigd op 01/02/2011 23:20:58 door Dirkjan Lousberg
Gesponsorde koppelingen:
Je kunt md5 niet "decoderen". Je moet md5(wachtwoord) vergelijken met het wachtwoord in de database.
de Code zal er dus als volgend uizien.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if( isset($_POST["login"]))
{
$query = mysql_query("select * from gebruikers where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = $_POST["wachtwoord"];
if (md5($_POST["wachtwoord"]) == $row->wachtwoord) && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=inloggenhome.php\">";
}
else
if( isset($_POST["login"]))
{
$query = mysql_query("select * from gebruikers where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = $_POST["wachtwoord"];
if (md5($_POST["wachtwoord"]) == $row->wachtwoord) && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=inloggenhome.php\">";
}
else
Waarom wil je terug naar het origineel?
Om te zien of ze wel het juiste wachtwoord hebben opgegeven?
Dan kan je ook gewoon het ingevoerde wachtwoord door middel van md5 omzetten en dit resultaat dan vergelijken met dat van in de database.
Normaal gezien zou md5 niet terug omzetbaar mogen zijn, want dan heeft het geen zin meer om je paswoord te encrypteren. De realiteit beslist hier echter anders over.
Ik raad je aan eens te kijken naar sha1 met een salt.
Om te zien of ze wel het juiste wachtwoord hebben opgegeven?
Dan kan je ook gewoon het ingevoerde wachtwoord door middel van md5 omzetten en dit resultaat dan vergelijken met dat van in de database.
Normaal gezien zou md5 niet terug omzetbaar mogen zijn, want dan heeft het geen zin meer om je paswoord te encrypteren. De realiteit beslist hier echter anders over.
Ik raad je aan eens te kijken naar sha1 met een salt.
Het is voor school we hoeven het dus niet zwaar te beveiligen, er moest echter wel een klein beetje beveiligd worden maar bovenstaande script zou moeten werken?
- Controleren of een form gepost is doe je met if($_SERVER['REQUEST_METHOD'] == 'POST')
- Selecteer wat je wilt hebben, gebruik geen *.
- Het is duidelijker als je de SQL in HOOFDLETTERS plaatst.
- SQL injection mogelijk, zie mysql_real_escape_string.
- Foutafhandeling ontbreekt, zie mysql_query.
- Objecten fetchen is onzin. Gebruik gewoon mysql_fetch_assoc.
- Niet onnodig variabelen kopiƫren.
- Gebruik een salt.
- Je kunt ook gelijk de data in de query stoppen zodat de database afhandelt of de waarden overeen komen.
- Setcookie kan niet midden tussen de output voorkomen.
- Dump geen meta-tag midden in het niets.
Edit: Zie ook mijn punten in je vorige topic.
- Selecteer wat je wilt hebben, gebruik geen *.
- Het is duidelijker als je de SQL in HOOFDLETTERS plaatst.
- SQL injection mogelijk, zie mysql_real_escape_string.
- Foutafhandeling ontbreekt, zie mysql_query.
- Objecten fetchen is onzin. Gebruik gewoon mysql_fetch_assoc.
- Niet onnodig variabelen kopiƫren.
- Gebruik een salt.
- Je kunt ook gelijk de data in de query stoppen zodat de database afhandelt of de waarden overeen komen.
- Setcookie kan niet midden tussen de output voorkomen.
- Dump geen meta-tag midden in het niets.
Edit: Zie ook mijn punten in je vorige topic.
Gewijzigd op 01/02/2011 23:27:43 door Karl Karl
Parse error: syntax error, unexpected T_STRING, expecting '(' in /home/leerling/domains/leerling.annavanrijn.nl/public_html/10116Vgr4/login.php on line 34
Eerst deed die het wel en nu niet meer foutmelding staat hierboven hoe komt dat?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
ob_start();
include("header.php");
include("connect.php");
?>
<p>
<center>
<form method="post">
<tr>
<td width="50%">Gebruikersnaam:</td>
<td width="50%"><input type="text" name="gebruikersnaam" value="Gebruikersnaam" onclick="gebruikersnaam.value=''" size="20"></td>
</tr><br><br>
<tr>
<td width="50%">Wachtwoord:</td>
<td width="50%"><input type="password" name="wachtwoord" value="Wachtwoord" onclick="wachtwoord.value=''" size="20"></td>
</tr>
<tr>
<tr><br><br>
<td width="100%" colspan="2"><input type="submit" name="login" value="Druk hier om in te loggen"></td>
</tr>
</table>
</form>
</center>
<?
if( isset($_POST["login"]))
{
$query = mysql_query("select * from gebruiker where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = $_POST["wachtwoord"];
if md5($_POST["wachtwoord"] == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=inloggenhome.php\">";
}
else
{
echo "<br><br>Fout, Waarschijnlijk heeft u een verkeerde wachtwoord of gebruikersnaam ingevoerd";
}
}
?>
</p>
<?php
include("footer.php");
?>
ob_start();
include("header.php");
include("connect.php");
?>
<p>
<center>
<form method="post">
<tr>
<td width="50%">Gebruikersnaam:</td>
<td width="50%"><input type="text" name="gebruikersnaam" value="Gebruikersnaam" onclick="gebruikersnaam.value=''" size="20"></td>
</tr><br><br>
<tr>
<td width="50%">Wachtwoord:</td>
<td width="50%"><input type="password" name="wachtwoord" value="Wachtwoord" onclick="wachtwoord.value=''" size="20"></td>
</tr>
<tr>
<tr><br><br>
<td width="100%" colspan="2"><input type="submit" name="login" value="Druk hier om in te loggen"></td>
</tr>
</table>
</form>
</center>
<?
if( isset($_POST["login"]))
{
$query = mysql_query("select * from gebruiker where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
$row = mysql_fetch_object($query);
$wachtwoord1 = $_POST["wachtwoord"];
if md5($_POST["wachtwoord"] == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
setcookie ("login", $_POST["gebruikersnaam"],time()+3600);
echo "U bent ingelogt.";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=inloggenhome.php\">";
}
else
{
echo "<br><br>Fout, Waarschijnlijk heeft u een verkeerde wachtwoord of gebruikersnaam ingevoerd";
}
}
?>
</p>
<?php
include("footer.php");
?>
Eerst deed die het wel en nu niet meer foutmelding staat hierboven hoe komt dat?
Haakjes verplaatst/verwijderd?
Gewijzigd op 01/02/2011 23:37:02 door - SanThe -
Tel de haakjes ()))()()() in je script.
Gebruik dus een editor zoals notepad++[/google].
Gebruik dus een editor zoals notepad++[/google].
Ik snap er echt niks van zou iemand er even naar willen kijken? danku
1+2 = 3
2*3+1 = 7
2*(3+1) = 8
if methode(parameter && nog-meer-zooi && onzin) <- Dat doe jij.
2*3+1 = 7
2*(3+1) = 8
if methode(parameter && nog-meer-zooi && onzin) <- Dat doe jij.
Daar heb ik niks aan, ik wil dit script gewoon werkend hebben, jij hebt er kennelijk verstand van zou je mij het antwoord alstublieft niet willen onthouden?
Ik snap best dat je dit script werkend wilt hebben. Toch vind ik dat als je iets doet, dat je er van moet leren. Zeker met elementaire dingen als dit. Daardoor probeer ik je alleen aanwijzingen te geven van hoe je je probleem zou kunnen verhelpen.
Als ik ga voorzeggen wat het probleem is en hoe je het moet verhelpen, dan leer je daar totaal niks van.
Volgens mij zijn mijn hints wel duidelijk. Zie anders ook eens md5 en if.
Als ik ga voorzeggen wat het probleem is en hoe je het moet verhelpen, dan leer je daar totaal niks van.
Volgens mij zijn mijn hints wel duidelijk. Zie anders ook eens md5 en if.
KIJK nou eens naar die regel en kijk dan eens naar if(....)
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
if (md5($_POST["wachtwoord"]) == $row->wachtwoord) && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
{
[\code]
In deze zin zit dus de fout het eind klopt.
dus blijft deze zin over if (md5($_POST["wachtwoord"]) == $row->wachtwoord)
moet die dan zo worden IF (md5($_POST["wachtwoord"]) == $row->wachtwoord) ? Of
IF$_POST(md5["wachtwoord"]) == $row->wachtwoord)
{
[\code]
In deze zin zit dus de fout het eind klopt.
dus blijft deze zin over if (md5($_POST["wachtwoord"]) == $row->wachtwoord)
moet die dan zo worden IF (md5($_POST["wachtwoord"]) == $row->wachtwoord) ? Of
IF$_POST(md5["wachtwoord"]) == $row->wachtwoord)
if(md5($_POST['wachtwoord']) == $row['wachtwoord'] && $_POST['gebruikersnaam'] == $row['gebruikersnaam'])
Maar goed, zie dus alle punten die ik heb opgenoemd.
Maar goed, zie dus alle punten die ik heb opgenoemd.
Quote
if(md5($_POST['wachtwoord']) == $row['wachtwoord') && $_POST['gebruikersnaam'] == $row['gebruikersnaam'])
Zo zou die moeten kloppen? Karl Karl ik kom er zelf niet echt uit zou jij me anders willen helpen de rest heb ik al wel volbracht.
if(md5($_POST['wachtwoord']) == $row['wachtwoord') && $_POST['gebruikersnaam'] == $row['gebruikersnaam'])
Zo zou die moeten kloppen? Karl Karl ik kom er zelf niet echt uit zou jij me anders willen helpen de rest heb ik al wel volbracht.
Dylan Boere op 02/02/2011 16:56:05:
Ik zou zeggen test het even.Zo zou die moeten kloppen?
Parse error: syntax error, unexpected ')', expecting ']' in /home/leerling/domains/leerling.annavanrijn.nl/public_html/10116Vgr4/login.php on line 36
Ik snap er eerlijk waar niks van, wil iemand mij helpen? en zeggen waar de fout zit. zie hem zelf namelijk niet ben niet zo heel goed in PHP en heb ook weinig zin om er een studie van te maken.
Ik snap er eerlijk waar niks van, wil iemand mij helpen? en zeggen waar de fout zit. zie hem zelf namelijk niet ben niet zo heel goed in PHP en heb ook weinig zin om er een studie van te maken.
Dylan Boere op 02/02/2011 17:13:39:
Parse error: syntax error, unexpected ')', expecting ']' in /home/leerling/domains/leerling.annavanrijn.nl/public_html/10116Vgr4/login.php on line 36
Ik snap er eerlijk waar niks van, wil iemand mij helpen? en zeggen waar de fout zit.
Ik snap er eerlijk waar niks van, wil iemand mij helpen? en zeggen waar de fout zit.
De foutmelding geeft aan wat er fout is en waar het fout gaat.
Dylan Boere op 02/02/2011 17:13:39:
ben niet zo heel goed in PHP en heb ook weinig zin om er een studie van te maken.
Hoezo een studie van maken? De foutmelding geeft je voldoende aanwijzingen.
Dylan Boere op 01/02/2011 23:26:13:
Het is voor school
Ik ga je huiswerk niet maken. Of een ander het wil doen, moet hij/zij weten.
Gewijzigd op 02/02/2011 17:32:42 door Obelix en Idefix


