Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wygenerowanie 2000 unikalnych haseł
Forum PHP.pl > Forum > PHP
tomekp
Jak powinien wyglądać skrypt do wygenerowania 2000 tysięcy haseł ?
Chciałbym, żeby w haśle nie powtarzał się żaden znak z tablicy a-z,0-9.
No i oczywiście, żeby hasło było unikalne.
Zacząłem pisać takową funkcje ale nie działa tak jak bym tego chciał.
  1. <?php
  2.  
  3. $digits_array = array(&#092;"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"r\",\"s\",\"t\",\"q\",\"u\",\"w\",\"v\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\");
  4.  
  5. for ($a=0; $a < 6; $a++) {
  6. $digit = $digits_array[ mt_rand(0,count($digits_array)-1) ];
  7. $tmp_code_array[] = $digit;
  8.  
  9. for ($b = 0; $b < count($tmp_code_array); $b++) {
  10. while ($tmp_code_array[$b] == $digit) {
  11. $digit = $digits_array[ mt_rand(0,count($digits_array)-1) ];
  12.  
  13. }
  14. $tmp_code_array[$b] = $digit;
  15. }
  16.  
  17. $wyraz .= $digit;
  18. }
  19.  
  20. ?>
wassago
Cytat
Chciałbym, żeby w haśle nie powtarzał się żaden znak z tablicy a-z,0-9.
w 2000 haslach ma sie nie powtorzyc zaden znak z tablicy a-z,0-9? cos Ci sie chyba pomylilo winksmiley.jpg

EDIT:

faktycznie, w hasle. ide wypic kawe bo niedowidze...
tomekp
W haśle, nie w hasłach, chodzi dokładnie o to, żeby w pojedynczym haśle, nie powtarzały się owe znaki.
scanner
Przeanalizuj mój kod, jaki pokazałem tutaj
tomekp
A jak wylosować 2000 unikalnych haseł a następnie wstawić je do bazy MySQL ?
kszychu
Odpalasz skrypt w pętli 2000 razy!
scanner
Mam dzisiaj dobry humor:
  1. <?php
  2. /**
  3. * @return array
  4. * @param int $iItems
  5. * @param int $iMax
  6. * @desc Zwraca $iMax elementowa tablice $iItems znakowych inikalnych hasel wygen
  7. rowanych z dozwolonych znakow
  8. * @author scanner <scanner@scanner.eu.org>
  9. * @date 2004/11/23
  10. */
  11. function passwordRandomizer( $iItems, $iMax )
  12. {
  13. $sAllowedChars = 'abcdefghijklmnopqrstuvwxyz';
  14. $sAllowedChars .= strtoupper( $sAllowedChars );
  15. $sAllowedChars .= '0123456789';
  16.  
  17. $aPasswords = array();
  18. $iIteration = 1;
  19. while( $iIteration <= $iMax)
  20. {
  21. $sAllowedChars = str_shuffle( $sAllowedChars );
  22. $sPassword = substr( $sAllowedChars, 0, $iItems );
  23. if( !in_array( $sPassword, $aPasswords ) )
  24. {
  25. $aPasswords[$iIteration] = $sPassword;
  26. $iIteration++;
  27. }
  28. }
  29. return $aPasswords;
  30. }
  31.  
  32. /** Usage **/
  33. $aDrawed = passwordRandomizer( 6, 2000 );
  34. var_dump( $aDrawed );
  35. ?>
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.