Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Generator haseł
Forum PHP.pl > Forum > Przedszkole
polak89
Mam taki problem. Przy dodawaniu nowego uzytkownika zalezy mi aby w bazie danych w rekordzie password wstawic losowe od 6 do 8-miu literowe haslo generowane automatycznie. Chcialbym zeby haslo skladalo sie z samym liter (dyzych i malych badz na przemian). Dodatkowo chcialbym zeby przy generowaniu hasla skrypt sprawdzal czy generowane w tym momencie haslo juz istnieje a nastepnie wstawil je do bazy danych. Czy ktos ma jakis pomysl?
dziurson
function rand_pwd() {
$znaki ="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
$dlug = strlen($znaki);
$pwd_l = 8;
$haslo = "";

for ($x=0; $x<$pwd_l; $x++) {
mt_srand(time()+(double)microtime()*1000000);
$losujemy = mt_rand(0, $dlug-1);
$haslo .= substr ($znaki, $losujemy, 1);
}
return ($haslo);
}
później starasz się za pomocą SELECT pobrać rekord z takim hasłem jak wygenerowane. Jeśli zwróci 0 rekordów to wstawia
marcio
tutaj na 4programmers jest cos takiego stare ale jare
http://4programmers.net/PHP/FAQ/Jak_wygene...i%C4%99_znakami
potem wyciagasz wszystkie hasla jakie sa w bazie i jesli te jest inne to je zapisujesz a jak nie wywolujeszz na nowo funckje

P.S oczywiscie przerob skrypt pod ciebie
dziurson
marcio, to co proponujesz będzie bardzo bardzo wolne
marcio
to ze bedzie wolne to wiem ale jak juz napisali zamiast while dac for i usunac cale te srand() w php5 jest niepotrzebne jednoego czego nie rozumiec to czemu we wszystkich takich kodach jest -1 mozesz mi powiedziec??
dziurson
bo mt_rand liczy od zera a count od 1
marcio
no tak ale ten kod co znalazlem to w nim nie ma ani count ani mt_rand lecz tylko rand()
dziurson
rand i mt_rand to w sumie to samo tylko ponoć mt_rand leprze a count nie ma bo est użyte strlen, które również liczy od 1 smile.gif
kszychu
  1. <?php
  2. $ilosc_znakow_w_hasle = 8;
  3. $tablica = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','e','t','u','w','x','y','z',
  4. 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','R','S','T','U','W','X','Y','Z');
  5. shuffle($tablica);
  6. $haslo = substr(implode('', $tablica), 0, $ilosc_znakow_w_hasle-1);
  7. ?>
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.