Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: losowe znaki
Forum PHP.pl > Forum > Przedszkole
adif
Witajcie...

rzecz wydaje się być prosta...

potrzebuję generować losowe hasła składające się z 6 znaków.

Przekopałem forum (może niezbyt dobrze) i nie znalazłem nic konkretnego. Sam raczej wykombinowałem proste rozwiązanie:

  1. <?php
  2.  
  3. $znaki=md5(time()); // i z tego wyciągam pierwsze 6 znaków
  4.  
  5. ?>


lub tak jak np. tutaj:

http://forum.php.pl/index.php?showtopic=2138&hl=

ale szczerze mówiąc zastanawia mnie czy istnieje cos mniej kombinowanego tj. dla znaków [a-zA-z0-9] jak dla liczb np. coś w rodzaju funkcji rand?questionmark.gif

--------------------------
pozdrawiam wszystkich
TomASS
Na phpclasses.org jest pełno ( w dziale Random Password Generator), np. ta klasa.

Z tym md5() i time() to też dobre.
NuLL
Prosty algorytm generowanie ciągu ale z samych liter
  1. <?php
  2. $length=8;
  3.  
  4. $list=array_merge(range('a','z'),range(0,9));
  5. shuffle($list);
  6. $string=substr(join($list),0,$length);
  7.  
  8. ?>

Możesz jeszcze zmerdżować tongue.gif cyfry i będzie ok.
adif
dzięki TomASS za ciekawy link...(może się kiedyś przydać)

jeśli chodzi o rozwiązanie NuLL'a to przyznaję - ciekawe, jednakże chyba również zbyt kombinowane.

raczej jednak pozostane przy swoim, o którym wyzej napisałem - mianowicie
  1. <?php
  2.  
  3. $nowe_haslo=substr(md5(time()), 0, 6);
  4.  
  5. ?>


Przynajmniej krótszy kod winksmiley.jpg

Wielkie dzięki za szybkie odpowiedzi.
hwao
  1. <?php
  2.  
  3. // Andy Shellam, andy [at] andycc [dot] net
  4.  
  5. // generate a random string of numbers/letters
  6.  
  7. settype($template, "string");
  8.  
  9. // you could repeat the alphabet to get more randomness
  10. $template = "1234567890abcdefghijklmnopqrstuvwxyz";
  11.  
  12. function GetRandomString($length) {
  13.  
  14.  global $template;
  15.  
  16.  settype($length, "integer");
  17.  settype($rndstring, "string");
  18.  settype($a, "integer");
  19.  settype($b, "integer");
  20.  
  21.  for ($a = 0; $a <= $length; $a++) {
  22.  $b = rand(0, strlen($template) - 1);
  23.  $rndstring .= $template[$b];
  24.  }
  25.  
  26.  return $rndstring;
  27.  
  28. }
  29.  
  30. echo GetRandomString(30);
  31.  
  32. ?>
tiraeth
Ja to rozwiązuję w ten sposób:
  1. <?php
  2. $pass = md5(uniqid(rand(), true));
  3. ?>

i po sprawie smile.gif Jak potrzebuję mniejszy ciąg znaków to substr i dzioba biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.