login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Wachtwoorden opslaan

Offline Ultimatum - 21/09/2007 09:58
Avatar van UltimatumPHP expert Ey, ik ben bezig met een loginsysteem dus ik zal na te denken over hoe het wachtwoord op te slaan.

Ik zat zelf te denken om het wachtwoord eerst door sha1 te gooien zodat ik een string van 40 tekens krijg en daarna door md5 die het weer verkleint naar 32. Maar als iemand nou die hash krijgt is het toch onmogelijk om het wachtwoord eruit te halen, omdat je nooit die weer de orginele 40 tekens kan terug krijgen. Om een wachtwoord te controleren hoeft dat ook niet dus zou dit veilig genoeg zijn en heb ik het ook zo goed gedacht of zit er ergens een fout in mijn denkvermogen? 

Graag zou ik jullie mening over het bovenstaande hebben en/of hoe jullie wachtwoorden wegschrijven..

14 antwoorden

Gesponsorde links
Offline zointer - 21/09/2007 10:13 (laatste wijziging 21/09/2007 10:13)
Avatar van zointer HTML gevorderde Ik denk dat hier ergens al eens iets over gezegt is geweest.

En wat jij doet is eigenlijk hetzelfde als sha1(sha1(sha1($_pass)))


Je kan beter 3keer proberen en dan moet men een nieuwe pas aanvragen via mail ect...
Is mijn mening
Offline marten - 21/09/2007 10:26
Avatar van marten Beheerder md5 is genoeg 
Offline Ultimatum - 21/09/2007 10:41
Avatar van Ultimatum PHP expert @zointer
Nee, dit is niet hetzelfde, want nu blijft het 40 tekens, als je eerst sha1 en dan md5 doet word het 32 karakters..

@marten
Ja misschien op dit moment wel maar je weet maar nooit hé en anders moet ik later weer de structuur aanpassen..
Offline zointer - 21/09/2007 10:55 (laatste wijziging 21/09/2007 11:04)
Avatar van zointer HTML gevorderde Nee maar ik wil maar zeggen dat het nutteloos is wat jij gaat doen.

Als je een md5 hash maakt, gaat er data verloren en dus ben je niet meer in staat je wachtwoord doormiddel van de hash terug te krijgen.

Als men wil Bruteforcen ect... dan kan je zoals ik aangaf 3 pogingen inbouwen zal veel veiliger zijn
[edit]
dan is er nog iets de hacker kan niet weten hoe jij je wachtwoorden encrypt (md5/sha1/eigen gemaakte...), weet dus niet uit hoeveel tekens deze bestaat en moet dus ook gissen.
[/edit]
Offline Dark_Paul - 21/09/2007 11:12 (laatste wijziging 21/09/2007 11:13)
Avatar van Dark_Paul PHP ver gevorderde Ik snap Ultimatum's manier van denken wel.
Als een hacker je hashes ziet en opmerkt dat die 32-tekens lang zijn, zal hij ervan uit gaan dat je md5() gebruikt, daar dit de meest gebruikte is.
Met Rainbow-tabellen kan hij gaan matchen welk wachtwoord er bij een hash hoort. Lang niet voor alle, maar wel voor een aantal.
Als je dus eerst bijvoorbeeld Md5, dan Sha1 en dan weer Md5 doet, kan hij er niets mee. Dan heeft hij de Md5-hash, die vervolgens nergens mee zal machten in rainbow-tabellen.
Dat van 3 inlogpogingen is sowieso een must om bruteforce tegen te gaan.
Offline Ultimatum - 21/09/2007 11:43
Avatar van Ultimatum PHP expert
zointer schreef:
Als je een md5 hash maakt, gaat er data verloren en dus ben je niet meer in staat je wachtwoord doormiddel van de hash terug te krijgen.


Nee, jij mist mijn punt. Er gaat inderdaad data verloren maar dat maakt niet uit. Want als een gebruiker zijn wachtword in voert maak ik gebruik van dezelfde functie, waardoor als het wachtwoord juist is, de hashes overeen komen. Op deze manier heb je een voordeel aan het verliezen van data, want je krijg nu never nooit meer het oorspronkelijke wachtwoord, omdat deze in die 40 tekens van sha1 is opgeslagen, en die 40 tekens krijg je niet meer terug.

@dark_paul, jij snapt wat ik bedoel, dat van 3 inlogpogingen is inderdaad een must en was ik ook zeker van plan te gaan gebruiken.
Offline zointer - 21/09/2007 11:47 (laatste wijziging 21/09/2007 11:58)
Avatar van zointer HTML gevorderde
Dark_Paul schreef:
Als een hacker je hashes ziet en opmerkt dat die 32-tekens lang zijn, zal hij ervan uit gaan dat je md5() gebruikt, daar dit de meest gebruikte is.


Dan kan die in de database 
_______________________________________________
Enkel topics hierover.
md5-hash databases
Hacken/cracken van SIMA ?
Offline Dark_Paul - 21/09/2007 14:57 (laatste wijziging 21/09/2007 15:00)
Avatar van Dark_Paul PHP ver gevorderde
zointer schreef:
[..quote..]

Dan kan die in de database 

Nee, dat zal ook beveiligd zijn. Maar mocht hij/zij dan toch aan de wachtwoorden in hash-vorm komen, eventueel nog met bijbehorende gebruikersnaam, dan kan hij/zij daar niets mee.
En dat was de vraag van Ultimatum, of het nodig is om in zo'n geval 2 encrypties over elkaar heen te halen.
Het antwoord is dus ja, het is veiliger.

Citaat:
@dark_paul, jij snapt wat ik bedoel, dat van 3 inlogpogingen is inderdaad een must en was ik ook zeker van plan te gaan gebruiken.

Dan had ik het toch bij het goede eind.
Hoe ik de wachtwoorden invoer: ik plak de md5 en sha1-hashes van het wachtwoord aan elkaar, en daar laat ik sha1 nog eens overheen gaan. Knappe kop die dat, met welke tabel dan ook, ontcijferd krijgt.
  1. function pass($pass) {
  2. $new_pass = md5($pass).sha1($pass);
  3. $new_pass = sha1($new_pass);
  4. return $new_pass;
  5. }
Offline Ultimatum - 21/09/2007 15:47
Avatar van Ultimatum PHP expert Dat is dus eigelijk wat ik ook doe omdat je op regel 2 een hash van 72 tekens hebt en op regel 3 verklein je dat weer naar 40, hierdoor kan je nooit de orginele 72 pakken en dus ook nooit hacken of wat dan ook, tenminste zo zie ik het. Dat was dus ook de vraag of ik dat zo goed dacht .
Offline Stijn - 21/09/2007 16:25
Avatar van Stijn PHP expert -_-' , alweer het zoveelste topic over dit onderwerp. Als je slim genoeg bent schrijf je je eigen encryptie en anders gebruik je maar de beschikbare functies. PHP.net: md5 , PHP.net: sha1 , PHP.net: crc32 , PHP.net: encrypt

@Dark_Paul: dankje voor je algoritme te delen met ons. Als ik in je database geraak zal ik eerst zien of ik die terug kan zetten in 72 tekens en dan moet ik gewoon maar splitsen van 0-32 en 32-72. Maar aangezien die kans zeer klein is doe ik geen moeite.

Hackers hacken je database voor een reden en zullen geen moeite doen om je algoritme te zoeken. Stel dat ze de hashes hebben van een online bank gaan ze vlugger zoeken omdat ze weten wat ze krijgen.
Offline Grayen - 21/09/2007 19:43 (laatste wijziging 21/09/2007 19:49)
Avatar van Grayen PHP ver gevorderde Ik doe het zo:

  1. <?php
  2. class Hash
  3. {
  4. public $sSalt = 'm9woxnakd5s8jqkud72j';
  5.  
  6. public function generate()
  7. {
  8. $sCharacters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  9.  
  10. $sRandom = '';
  11.  
  12. for ($i = 0; $i < 50; $i++) {
  13. $sRandom .= $sCharacters[rand(0, 61)];
  14. }
  15.  
  16. return $this->create($sRandom);
  17. }
  18.  
  19. public function create($sInput)
  20. {
  21. $sInput = substr(md5($sInput), 0, 25);
  22.  
  23. $sHash = '';
  24.  
  25. for ($i = 0; $i < 25; $i++) {
  26. $sHash .= $sInput[$i].(isset($this->sSalt[$i]) ? $this->sSalt[$i] : '');
  27. }
  28.  
  29. return substr(sha1($sHash).md5($sHash), 10, 50);
  30. }
  31. }
  32. ?>
Offline Stijn - 21/09/2007 20:59
Avatar van Stijn PHP expert @Grayen: jij bent de laatste die zijn code voorbeeld geeft. Straks staat dit topic vol met "eigenhandige algoritmes".
Offline vinTage - 22/09/2007 01:04
Avatar van vinTage Nieuw lid Ik gebruik dit
  1. if(post[ww] != "vinTage owNage"){
  2. //buzz of
  3. }else{
  4. //ur my cutey
  5. }


^^

Met andere woorden, ik denk ook dat md5 voldoende is, tegen de tijd dat md5 een "google search" is, is jouw site ook al prehistory
Offline ikkedikke - 22/09/2007 18:45
Avatar van ikkedikke PHP expert Hoe meer functies je gebruikt, hoe groter de kans op collisions Wikipedia.org: Hash_collision wordt.
maw. gewoon md5. Ik kan me niet voorstellen dat die gegevens zo interessant zijn dat iemand het gaat hacken.
Ten tweede heb je veel ernstigere problemen wanneer iemand in je database kan.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.273s