Coderen van wachtwoord?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Gilles Van Vlasselaer

Gilles Van Vlasselaer

22/01/2006 23:21:00
Quote Anchor link
is het mogelijk om wachtwoorden te coderen? voor een inlog systeem zodat men er niet misbruik kan van maken...

help me pls :)
 
PHP hulp

PHP hulp

08/11/2024 07:05:09
 
Jan Koehoorn

Jan Koehoorn

22/01/2006 23:24:00
Quote Anchor link
Meestal gebruik je daarvoor md5() of sha1().

Strikt genomen is het niet coderen, want je kunt ze daarna niet decoderen.
 
Robert Deiman

Robert Deiman

22/01/2006 23:29:00
Quote Anchor link
Inderdaad is het nie helemaal coderen. Maar er zit wel iets van een logica achter, anders komt er niet elke keer dat je HETZELFDE wachtwoord typt, hetzelfde antwoord uit.
Decoderen is (vooralsnog) niet mogelijk, je moet voor het vergelijken ook het wachtwoord sha1() of md5() coderen, en de 2 gecodeerde wachtwoorden vergelijken.
 
- SanThe -

- SanThe -

22/01/2006 23:31:00
Quote Anchor link
En stop je deze 'gecodeerde' wachtwoorden in een database, zorg dan dat het veld groot genoeg is. 32 bij md5() en ik dacht 40 bij sha1()
 
Jan Koehoorn

Jan Koehoorn

22/01/2006 23:34:00
Quote Anchor link
@ Mr. Waggel: het beste is om in je database een versleutelde versie van het wachtwoord te bewaren. Als iemand inlogt versleutel je het opgegeven wachtwoord.

$password = sha1 ($_POST['password']);
 
Jan Koehoorn

Jan Koehoorn

22/01/2006 23:36:00
Quote Anchor link
@ SanThe: 40 is correct.
 
Gilles Van Vlasselaer

Gilles Van Vlasselaer

22/01/2006 23:40:00
Quote Anchor link
bedankt mannen ik heb voor mezelf al wat meer uitgevist:
http://be.php.net/manual/en/function.sha1.php

en ff om zelf te zien:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Paswoord in Sha1 testen</title>
</head>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
include('cfg.php');
if(isset($_POST['Submit'])=='0'){
?>


<body>
<form id="form1" name="form1" method="post" action="pass.php">
<p>Je gewenste paswoord:</p>
<p>
<label>
<input type="password" name="pass" />
</label>
</p>
<p>
<label>
<input type="submit" name="Submit" value="Submit" />
</label>
</p>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
}else{
$pass=$_POST['pass'] ;
$passn=sha1($pass);
echo $passn ;
}

?>

</body>
</html>
 
Jan Koehoorn

Jan Koehoorn

22/01/2006 23:42:00
Quote Anchor link
if(isset($_POST['Submit'])=='0')

Het is niet handig om op die manier te testen. isset geeft namelijk true of false terug.
 
Gilles Van Vlasselaer

Gilles Van Vlasselaer

22/01/2006 23:46:00
Quote Anchor link
en jouw remedie daarvoor ...
false of true komen dan tog overéén met 0 of 1...
(of legt die van to dat verkeerd uit :p )
 
- SanThe -

- SanThe -

22/01/2006 23:50:00
Quote Anchor link
Gewoon dit gebruiken:
if(isset($_POST['Submit'])){

Vraagje: Wat gebeurt er als er op submit is geklikt en er niets in het form is ingevuld?
 
Robert Deiman

Robert Deiman

22/01/2006 23:50:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_POST['Submit']) && !empty($_POST['pass'])){
// codeer password
}
else if(isset($_POST['Submit']) && empty($_POST['pass'])) {
echo "geen password geset";
}

else{
// hier je formulier
}
?>
Gewijzigd op 22/01/2006 23:53:00 door Robert Deiman
 
Jan Koehoorn

Jan Koehoorn

22/01/2006 23:51:00
Quote Anchor link
Mijn remedie:

if ($_SERVER['REQUEST_METHOD']) == 'POST') {
// versleutelde password echoën
}
else {
// formulier laten zien.
}

en dat pas NA de <body> tag zetten.
Gewijzigd op 22/01/2006 23:53:00 door Jan Koehoorn
 
- SanThe -

- SanThe -

22/01/2006 23:54:00
Quote Anchor link
Jan:
en dat pas NA de <body> tag zetten.


Dat heb je weer scherp opgemerkt!
 
PHP erik

PHP erik

23/01/2006 00:07:00
Quote Anchor link
Zal ik een leuke toevoeging geven aan dit verhaal :) ?

Als je het écht goed wil doen, dan kun je het best een indexbestand maken van bijvoorbeeld 40 gigabytes groot met hierin volledig randomized passwords. Deze hebben allemaal een unieke id waar je de pointer direct op kan zetten. Zo kun je wachtwoorden in je database opslaan van bijvoorbeeld 4 of 5 integers. Voordeel? Integers zijn factoriaal sneller dan varchars, INT(5) is sowieso veel kleiner dan VARCHAR(40), en je codering is vele malen veiliger omdat er geen systematiek in zit.

md5 raad ik af, is al 2 keer gehackt. Eerste keer in 1996.

Maar dit is uiteraard vanuit een behoorlijk wanhopig en wantrouwend oogpunt. Wel een oogpunt waar je rekening mee moet houden bij grote systemen. Ben nu bezig met een systeem voor ongeveer 300 miljoen mensen waar ik niet eens mag denken aan md5 ;)
 
Jan Koehoorn

Jan Koehoorn

23/01/2006 00:13:00
Quote Anchor link
@ PHPerik: het is natuurlijk mooi dat je voor 300 miljoen mensen aan het programmeren bent. Maar voor iemand die gewoon een simpel login systeempje wil maken lijkt me een indexbestand van 40 GB nogal overdreven.
Gewijzigd op 23/01/2006 00:13:00 door Jan Koehoorn
 
PHP erik

PHP erik

23/01/2006 00:14:00
Quote Anchor link
Haha, daar ben ik het volledig mee eens. Maar het is eens een andere manier van denken voor sommige mensen die hier wel bezig zijn met grote sites. Toevoegingen kunnen hopelijk nooit kwaad.
 
Jan Koehoorn

Jan Koehoorn

23/01/2006 00:17:00
Quote Anchor link
Ja, behoorlijk groot. Mijn hosting pakket is in ieder geval nèt iets kleiner dan 40GB.

Dat hacken van md5 is al een aantal keer een onderwerp geweest. Over "hacken" van sha1 heb ik ook al gelezen. Voor de gemiddelde hobby-site kun je volstaan met een minimale password-lengte van 8 karakters en een sleep(5) op een mislukte inlogpoging.
 
- SanThe -

- SanThe -

23/01/2006 00:22:00
Quote Anchor link
Ik heb, als ik de schijven van al mijn servers bij elkaar optel, nog lang geen 40 Gig.
 
Pim Vernooij

Pim Vernooij

23/01/2006 00:23:00
Quote Anchor link
PHPerik:
md5 raad ik af, is al 2 keer gehackt. Eerste keer in 1996.
md5 maakt een hash van data, maar 2 verschillende 'dingen' kunnen dezelfde hash opleveren... m.a.w md5 is niet te decoderen, alleen te brute-forcen (zo lang mogelijk proberen, totdat er een keer het goede antwoord uit rolt).

Gehackt is imho een verkeerde term, alles kan gebrute-forced worden.
 
PHP erik

PHP erik

23/01/2006 00:25:00
Quote Anchor link
@Pim
Neen, md5 is twee keer algoritmisch gehackt. Het is waarschijnlijk al een paar miljard keer brute-force gekraakt. Maar het algoritme (dus het priemgetal voor en na de modulo) is 2 keer gehackt.
 
- SanThe -

- SanThe -

23/01/2006 00:25:00
Quote Anchor link
En 2 keer in 10 jaar is niet echt veel.....
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.