login  Naam:   Wachtwoord: 
Registreer je!
 Forum

veilig?

Offline compudoc - 13/05/2008 19:30 (laatste wijziging 13/05/2008 19:31)
Avatar van compudocPHP beginner ik heb een (simpel) scriptje gemaakt om wachtwoorden te versleutelen voor een ledensysteem wat ik ga maken. $pass = wachtwoord, $salt = salt (salt is gebruikersnaam).

de string die als output is, is altijd 64 karakters lang. Is dit veilig voor rainbowtables enzo? en hebben jullie nog verbeterpuntjes?

script:
  1. <?php
  2. function ush($pass, $salt, $str="")
  3. {
  4.  
  5. $pass = sha1($pass . md5($salt . $pass));
  6. $salt = strtolower($salt);
  7.  
  8. $arr[0] = strlen($pass);
  9. $arr[1] = strlen($salt);
  10.  
  11. while($arr[0] > $arr[1] + 1)
  12. {
  13. $salt = $salt.$salt;
  14. $arr[1] = strlen($salt);
  15. }
  16.  
  17. $salt = ($arr[1] > 24) ? substr($salt, 0, 24) : $salt;
  18.  
  19. $split_len = floor(max($arr) / (min($arr) - 1));
  20.  
  21. $salt = explode(" ", chunk_split($salt, $split_len, " "));
  22. array_pop($salt);
  23. $salt = array_reverse($salt);
  24.  
  25. $j = $arr[0] > count($salt) ? $arr[0] : count($salt);
  26.  
  27. for($i=0; $i<$j; $i++)
  28. {
  29. if(isset($pass{$i})) $str .= $pass{$i};
  30. if(isset($salt[$i])) $str .= $salt[$i];
  31. }
  32.  
  33. return $str;
  34.  
  35.  
  36. }
  37.  
  38. echo ush('wachtwoord', 'gebruiker');
  39. ?>

5 antwoorden

Gesponsorde links
Offline Ibrahim - 13/05/2008 20:44
Avatar van Ibrahim PHP expert Weet je wat al veilig genoeg was ? Regel 5 van bovenstaande script Return dat gewoon lekker, en doe niet zo moeilijk 
Offline RalphK87 - 13/05/2008 22:50
Avatar van RalphK87 Nieuw lid Dit is wel redelijk veilig. een salt toevoegen is een goede oplossing.

Echter is sha1 al een keer gekraakt geloof ik.
Ik raad aan om een keer sha512 te gebruiken. Wordt nog erg weinig gebruikt en is geloof ik nog niet gekraakt.

Tevens als je zoiets wilt gaan gebruiken, maak gebruik van een https verbinding, die zijn altijd beveiligd..
Offline Ibrahim - 13/05/2008 23:06
Avatar van Ibrahim PHP expert Wat snappen mensen hier nou niet van HASH functies...

Je kraakt het niet, je bruteforce het... Ik ken geen enkele rainbow tabel dat een combinatie van sha1 en md5 met sha1 eroverheen kan bevatten.
Offline compudoc - 14/05/2008 07:59 (laatste wijziging 14/05/2008 08:00)
Avatar van compudoc PHP beginner oke, maar welke beveiliging kan ik dan het beste nemen? ik denk gewoon sha1 of moet ik sha256 / sha512 gebruiken?

  1. $pass = sha1($pass . md5($salt . $pass));

  1. $pass = hash(sha256, $pass);
Offline RalphK87 - 14/05/2008 10:32
Avatar van RalphK87 Nieuw lid @Psycho: Okay, sorry voor het verkeerd neerzetten. Bruteforcen inderdaad...

@compudoc: Sha1 is wel veilig en goed te doen, maar het is verstandig dat als je met je loginscript veel verantwoordelijkheid hebt, denk hierbij aan grote bedrijven die hiervan gebruik maken, dat je dan toch aan een https verbinding moet denken.
Check deze tut anders:
http://www.phphulp.nl/php/tutorials/10/452/


Verder let bij veiligheid ook goed op MySQL injection.. dit gaat vaak mis
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.269s