PHP salt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jordy nvt

Jordy nvt

21/11/2010 20:10:35
Quote Anchor link
Hallo,

Wat is de beste mogelijkheid voor salt van een wachtwoord? Ik snap er nog niet heel veel van. Is het het beste om de tijd in microseconden als salt te nemen? En hoe "unsalt" ik die dan later? Ik heb wat tutorials gelezen, maar snap er nog niet heel veel van.

Gr Jordy
 
PHP hulp

PHP hulp

21/12/2024 15:35:30
 

21/11/2010 20:14:41
Quote Anchor link
Niet.
Je 'unsalt' nooit.
Altijd een kant op. Dus steeds password encrypten / hashen...
 
Jasper DS

Jasper DS

21/11/2010 20:14:48
Quote Anchor link
md5 of sha1 ?
 
Jordy nvt

Jordy nvt

21/11/2010 21:03:25
Quote Anchor link
Is dit een goede salt?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function generate_pass($pass , $gbrNaam)
{

    $salt1 = 'XXX' ;
    $salt2 = md5($gbrNaam);
    $pass =  md5(sha1(crc32(md5(base64_decode($salt1 .  $pass  . $salt2)) . $salt1 .  $salt2)));
    
    return $pass;
}

?>


En wat kan ik dan op de plaats van de XXX zetten?
Gewijzigd op 21/11/2010 21:04:52 door Jordy nvt
 

21/11/2010 21:21:55
Quote Anchor link
Nee, een salt is een langere reeks willekeurige tekens (kan je op het internet wel vinden, gefilterd uit de ruimte).
Verder moet je nooit of te nimmer meerdere hashing / encryptie functies over elkaar heen gooien, daarmee maak je de kans op gelijke hashen groter en dat wil je dus niet.
 
Bram Boos

Bram Boos

21/11/2010 21:38:21
Quote Anchor link
Zie je die mooie grote zoek balk rechtsboven staan??

Zo ja, typ daar maar eens "salt" in.
 
Jordy nvt

Jordy nvt

22/11/2010 16:52:13
Quote Anchor link
Ik heb op phphulp gezocht, en ook op internet. Maar er is nu eenmaal zoveel te vinden. Is dit bijvoorbeeld goed?
http://www.georgetruong.com/2009/09/02/how-to-salt-and-hash-user-passwords-in-php/ of
http://createmy.com.au/php-password-salt-and-pepper-using-sha1-md5-hash/
 
Pieter van Linschoten

Pieter van Linschoten

22/11/2010 17:05:45
Quote Anchor link
Een salt is alleen maar om te zorgen, dat iemand die bijvoorbeeld een database een hele hoop standaard woorden naar MD5 heeft gehashed heeft, met een kluitje het riet in te sturen. Want de hash in bijvoorbeeld de database is niet alleen het wachtwoord, maar ook wat zout en pepper (salt and pepper)

Zoals een echte kok zijn meester recepten niet verklapt, ookal weet je al dat het bijvoorbeeld biefstuk is. De kruidenmix (in dit geval peper en zout) maken de mix af, zorgt dat iemand nog meer mogelijkheden moet proberen, wat per extra entiteit een logaritmische toevoeging aan tijd voor het ontcijferen kan bewerkstelligen.
 
Pim -

Pim -

22/11/2010 17:06:54
Quote Anchor link
Denk eraan dat de salt die je bij de eerste encryptie gebruikt, altijd beschikbaar moet blijven.

Ook is het aan te raden je salt dynamisch te maken, door bijvoorbeeld het emailadres van de gebruiker (mocht dit niet veranderen) er (evt gehutseld) achter de reguliere salt te plakken.

EDIT: Uiteraard is zout geen specerij / kruid ;)
Gewijzigd op 22/11/2010 17:13:43 door Pim -
 
Pieter van Linschoten

Pieter van Linschoten

22/11/2010 17:13:11
Quote Anchor link
@ Pim, dan lijkt mij bijvoorbeeld database id of datum aangemaakt een betere oplossing.

Zelf betwijfel ik hoeverre men komt als de salt niet dynamisch is.
 
Pim -

Pim -

22/11/2010 17:16:36
Quote Anchor link
Uiteraard is het voor kleine sites niet zo belangrijk en als de hacker de hash kent, ben je ook al aardig ver heen, maar het voegt wat extra beveiliging toe, omdat de hacker (mocht het kunnen) zo niet een of andere analyse kan uitvoeren, waarmee hij de salt ontdekt, waardoor het aantal mogelijkheden drastisch wordt verkleind.
 
Jordy nvt

Jordy nvt

22/11/2010 17:24:18
Quote Anchor link
Ok, maar waren die links goed die ik stuurde?
 
Nicoow Unknown

Nicoow Unknown

22/11/2010 17:26:36
Quote Anchor link
Je moet ook op Bing of Yahoo gaan zoeken!!
 
Pieter van Linschoten

Pieter van Linschoten

22/11/2010 17:55:01
 
Jordy nvt

Jordy nvt

22/11/2010 18:27:52
Quote Anchor link
Die had ik inderdaad al gelezen. Maar stel dat ik als salt de tijd in microseconden neem. Moet ik dan het wachtwoord en die tijd in de database opslaan en vervolgens "unsalten"?
 
Jasper DS

Jasper DS

22/11/2010 18:30:56
Quote Anchor link
Karl Karl op 21/11/2010 20:14:41:
Niet.
Je 'unsalt' nooit.
Altijd een kant op. Dus steeds password encrypten / hashen...
 
Jordy nvt

Jordy nvt

22/11/2010 18:41:46
Quote Anchor link
Ja, maar ik bedoel, ik moet wel controleren of het wachtwoord juist is als de gebruiker deze invoert, dus dan moet ik toch de salt weten?
 
Justin S

Justin S

22/11/2010 18:44:48
Quote Anchor link
Dat zet je toch hard-coded in je script?
Je UNSALT nooit, maar je matcht wel je wachtwoorden

Stel, je hebt succesvol een salt toegepast en een MD5 of SHA1 en dit is het wachtwoord als plain text:

12o3hkjb23234lnljbk234n089fgdffdgdfg

Dan zal je moeten zorgen dat je het ingevoerde wachtwoord op de login pagina weer salt en vervolgens weer met MD5 of SHA1 encrypt, om zo hetzelfde resultaat te krijgen als wat in de database staat..

Snap je?
Gewijzigd op 22/11/2010 18:46:32 door Justin S
 
Jordy nvt

Jordy nvt

22/11/2010 18:54:05
Quote Anchor link
Ok, maar stel dat ik als salt de tijd in microseconde gebruik. De microseconden waarop het wachtwoord is aangemaakt en waarop de gebruiker inlogt moet hetzelfde zijn. Dus ik moet de microseconden die voor het ww zijn gebruikt in de database opslaan?

Toevoeging op 23/11/2010 09:44:32:

Ik ga deze gebruiken: http://www.opensecuritylab.org/storing-passwords-securely-using-salt-in-php

Het gebruikt geen microseconden, maar volgensmij is die echt veilig!
 
Jordy nvt

Jordy nvt

25/11/2010 15:36:05
Quote Anchor link
Is die laatste link die ik gaf eigenlijk een goede?
 
Pim -

Pim -

25/11/2010 16:45:34
Quote Anchor link
Wat misschien ook wel een leuke is, is om de laatste 3 van de 32 tekens niet uit de hash te laten komen, maar random te laten zijn. Daar zal je een hacker heel wat kopzorgen mee bezorgen :)
 



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.