[php] Password generator

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
Ik heb zelf een script geschreven voor het genereren van een password. Nou is mijn vraag of dit script goed genoeg is voor het genereren van passwords
code:
1
2
3
4
5
6
srand ((double) microtime() * 1000000);
$uniek_id = uniqid(rand());
$new_wachtwoord_uniek = substr("$uniek_id", 0, 8);
$new_wachtwoord_uniek_md5 = md5($new_wachtwoord_uniek);
$new_wachtwoord = substr("$new_wachtwoord_uniek_md5", 0, 8); //dit is het wachtwoord
$new_wachtwoord_enc = md5($new_wachtwoord); //wachtwoord voor in de dbase


[edit]
fouen uit script gehaald

[ Voor 14% gewijzigd door EnsconcE op 23-05-2003 10:59 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

't levert iig redelijk unieke wachtwoorden op, maar wel allemaal met een beperkte tekenset. Namelijk 0-9 en a-f voor alle 8 tekens.

Verder is dit niet handig:
$new_wachtwoord_uniek = substr("$uniek_id", 0, 8 );
Die "" zijn overbodig en eigenlijk zelfs een beetje fout :)
Wat ik me ook afvraag is waar je die waarden vandaan haalt:
$new_wachtwoord_uniek_md5 = md5($new_ww1); (die new_ww1 wordt nergens gedefinieerd);

Waarom maak je eerst het unieke id een stukje korter, doe je md5 erover en maak je het weer korter? Die eerste substr is niet nodig hoor :)

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 16:32
Waarom wil je eigenlijk unieke wachtwoorden?

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
dat is toch veiliger?

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

whoami schreef op 23 May 2003 @ 10:58:
Waarom wil je eigenlijk unieke wachtwoorden?
Volgens mij staat dat er niet :o

Maar "niet uniek genoeg, zodat het niet te raden valt" is wel handig :)

[ Voor 20% gewijzigd door ACM op 23-05-2003 11:00 ]


Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
ACM schreef op 23 mei 2003 @ 10:59:
[...]

Volgens mij staat dat er niet :o

Maar "niet uniek genoeg, zodat het niet te raden valt" is wel handig :)
en om die reden doe ik die eerste substring
maar die is dus gwoon overbodig?

[ Voor 9% gewijzigd door EnsconcE op 23-05-2003 11:01 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

EnsconcE schreef op 23 May 2003 @ 11:00:
en om die reden doe ik die eerste substring
maar die is dus gwoon overbodig?
ja, die is overbodig. md5 kan een willekeurig lange tekst aan en uniqid geeft niet zo heel lange teksten.

Als je het "zo uniek mogelijk" wilt hebben moet je ook pas in een zo laat mogelijk stadium de boel inkorten en zeker niet tussendoor dat doen :)

Acties:
  • 0 Henk 'm!

Verwijderd

EnsconcE schreef op 23 mei 2003 @ 11:00:
[...]


en om die reden doe ik die eerste substring
maar die is dus gwoon overbodig?
Je kan ook eerst een 8 tal random getallen pakken, en een timestamp, dit in een string zetten en een md5 er overheen, daarvan weer een stukje pakken, is nog randomer denk ik zo ;)
whoami schreef op 23 May 2003 @ 10:58:
Waarom wil je eigenlijk unieke wachtwoorden?
Ja iedereen standaard een beginwachtwoord geven als 'welkom' is zeker geweldig :+

Passwords maak ik zelf altijd op deze manier:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
function generate_password($length) { 
    $ret_val     = ""; 
    $charset     = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh"
    ."ijklmnopqrstuvwxyz0123456789"; 
    $charset_len = strlen($charset) - 1; 

    srand(microtime() * 1000000); 

    for ($i=0;$i<$length;$i++) 
        $ret_val .= $charset{rand(0, $charset_len)}; 

    return $ret_val; 
}

kwestie van aanroepen en klaar :)
veilig genoeg toch?
ACM schreef op 23 May 2003 @ 11:07:
[knip]
Als je het "zo uniek mogelijk" wilt hebben moet je ook pas in een zo laat mogelijk stadium de boel inkorten en zeker niet tussendoor dat doen :)
Maakt volgends mij geen zak uit wanneer je die passwords genereeds hoor, zolang ze maar gemaakt worden. Waarom zo laat mogelijk? Is dit omdat de random retengeneratoren dan een iets latere tijd hebben waardoor veiligere texten terugsturen?

[ Voor 21% gewijzigd door Verwijderd op 23-05-2003 11:11 ]


Acties:
  • 0 Henk 'm!

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 08:38
Verwijderd schreef op 23 May 2003 @ 11:08:
...
Ja iedereen standaard een beginwachtwoord geven als 'welkom' is zeker geweldig :+
...
Ja iedereen standaard een beginwachtwoord geven is zeker geweldig :?

Laat de gebruiker bij aanmelding toch fijn zelf een wachtwoord kiezen, makkelijker voor de gebruiker en ook voor de devver.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Verwijderd schreef op 23 May 2003 @ 11:08:
Maakt volgends mij geen zak uit wanneer je die passwords genereeds hoor, zolang ze maar gemaakt worden. Waarom zo laat mogelijk? Is dit omdat de random retengeneratoren dan een iets latere tijd hebben waardoor veiligere texten terugsturen?
Dat sloeg erop dat als je onder de noemer "dit moet zo uniek mogelijk" je alvast halverwege een deel van je "uniekheid" weggooit je fout bezig bent ;)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Have a look at this: RobIII in "Passworden voor een 75 user netwerk." en RobIII in "Passworden voor een 75 user netwerk."

8)

[ Voor 39% gewijzigd door RobIII op 23-05-2003 11:26 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
de eerste link:
Het is neit voor een netwerk, het is voor mensen die hun wachtwoord zijn kwijtgeraakt bij een webwinkel
de 2de:
Ik genereer liever in php dan in javascript ivm veiligheid. Clientside lijk me iets onveiliger.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
EnsconcE schreef op 23 May 2003 @ 11:32:
[...]
de eerste link:
Het is neit voor een netwerk, het is voor mensen die hun wachtwoord zijn kwijtgeraakt bij een webwinkel
OK, begrepen
EnsconcE schreef op 23 May 2003 @ 11:32:
de 2de:
Ik genereer liever in php dan in javascript ivm veiligheid. Clientside lijk me iets onveiliger.
Was ook niet bedoeld om kant-en-klaar een oplossing aan te dragen. Het gaat om het principe waarmee hier wachtwoorden worden gegenereerd. Bestaande uit letters, cijfers en andere "gekke" tekens (vrij op te geven) en het gebruik van het verschil tussen klinkers en medeklinkers. Op deze manier krijg je "uitspreekbare" passwords, en die zijn over het algemeen makkelijker te onthouden...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • DRaakje
  • Registratie: Februari 2000
  • Niet online
probeer het hier eens mee:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$lengte = 8; //hoe lang moet het password zijn

For($i = 0 ; $i <= $lengte; $i++){
    $deel = rand(48,122);
    while(($deel > 57 and $deel < 65) or ($deel > 90 and $deel < 97)){
        $deel = rand(48,122);
    }       
    $key = $key . chr($deel);
    }
print("$key");
?>

Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
RobIII schreef op 23 mei 2003 @ 11:41:
[...]

OK, begrepen


[...]

Was ook niet bedoeld om kant-en-klaar een oplossing aan te dragen. Het gaat om het principe waarmee hier wachtwoorden worden gegenereerd. Bestaande uit letters, cijfers en andere "gekke" tekens (vrij op te geven) en het gebruik van het verschil tussen klinkers en medeklinkers. Op deze manier krijg je "uitspreekbare" passwords, en die zijn over het algemeen makkelijker te onthouden...
het gaat mij erom dat ik passwords genereer en dan maakt et mij neit uit of ze wel of niet uitspreekbaar zijn, ik geef nmlk het advies om direct het w8woord te wijzigen als ze met het door php gegenereerde w8woord hebben ingelogd.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op 23 mei 2003 @ 11:08:

Passwords maak ik zelf altijd op deze manier:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
function generate_password($length) { 
    $ret_val     = ""; 
    $charset     = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh"
    ."ijklmnopqrstuvwxyz0123456789"; 
    $charset_len = strlen($charset) - 1; 

    srand(microtime() * 1000000); 

    for ($i=0;$i<$length;$i++) 
        $ret_val .= $charset{rand(0, $charset_len)}; 

    return $ret_val; 
}

kwestie van aanroepen en klaar :)
veilig genoeg toch?
Leuk scriptje, maar als je het toch zo doet, waarom dan al die verwarrende tekens erin laten? Ikzelf heb een soortgelijke functie, maar daaruit heb ik 0, O, 1, I en l weggelaten zodat mensen zich niet kunnen vergissen ;).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Janoz schreef op 23 May 2003 @ 12:49:
[...]

Leuk scriptje, maar als je het toch zo doet, waarom dan al die verwarrende tekens erin laten? Ikzelf heb een soortgelijke functie, maar daaruit heb ik 0, O, 1, I en l weggelaten zodat mensen zich niet kunnen vergissen ;).
Bedankt dat is een zeer goed idee, die ga ik ook er uit halen :)
Limhes schreef op 23 May 2003 @ 11:20:
[...]


Ja iedereen standaard een beginwachtwoord geven is zeker geweldig :?

Laat de gebruiker bij aanmelding toch fijn zelf een wachtwoord kiezen, makkelijker voor de gebruiker en ook voor de devver.
ne tuurlijk moet je iemand geen standaard wachtwoord geven, ik zij dat dat niet echt geweldig is :P
Maare ontopic:
Waarom user een password laten kiezen? Dan moet je weer een activatiemailtje sturen met een activatiecode enzo. Dus maak ik zelf een password en stuurd die naar de gebruiker toe. Is simpeler in scripten.

[ Voor 45% gewijzigd door Verwijderd op 24-05-2003 01:37 ]


Acties:
  • 0 Henk 'm!

  • gomaster
  • Registratie: Februari 2002
  • Laatst online: 17-09 17:39
Ik gebruik dit voor mn random passwords:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function pass($pwlength){
    $randomstring = "";
    for($i=0; $i < $pwlength; $i++) {
      if($i==0) {
        $what=rand(1,2);
      }
      else {
        $what=rand(0,2);
      }
      if($what==0) { //cijfertje
         $randomstring .= chr(rand(48, 57));       
      }
      else if($what==1) { //klein lettertje
         $randomstring .= chr(rand(97, 122)); 
      }
      else if($what==2) { //cijfertje
         $randomstring .= chr(rand(65, 90));
      }
        }
    return $randomstring;
    }

Je moet er wel ff de lengte instoppen. Dus als je m aanroept zo bijvoorbeeld
PHP:
1
$pass = pass(8);

voor een pass van 8 tekens.

Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
Leuk die scripts, maar wat maakt jullie scripts minder voorspelbaar dan die van mij?

Het gaat mij er namelijk niet om of het wachtwoord makkelijk te onthouden is, maar dat hij minder voorspelbaar is. Ik maak de webstie zo dat als men hun account opnieuw hebben geactiveerd, na het aanvragen van een nieuw wachtwoord, dat ze met het gegenereerde wachtwoord inloggen. Na het inloggen krijgt men een scherm om een nieuw wachtwoord in te stellen.

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
EnsconcE schreef op 25 mei 2003 @ 18:02:
Leuk die scripts, maar wat maakt jullie scripts minder voorspelbaar dan die van mij?

Het gaat mij er namelijk niet om of het wachtwoord makkelijk te onthouden is, maar dat hij minder voorspelbaar is. Ik maak de webstie zo dat als men hun account opnieuw hebben geactiveerd, na het aanvragen van een nieuw wachtwoord, dat ze met het gegenereerde wachtwoord inloggen. Na het inloggen krijgt men een scherm om een nieuw wachtwoord in te stellen.
Jouw tekenset bestaat uit 16 tekens, de andere tekensets bestaan uit 62 tekens.
Daarom zijn jouw wachtwoorden iets slechter.
Pagina: 1