Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wygenerowanie 2000 unikalnych haseł
tomekp
post
Post #1





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
escape from the execution is futile.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
wassago
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 701
Pomógł: 0
Dołączył: 26.06.2002
Skąd: Londyn

Ostrzeżenie: (0%)
-----


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...


--------------------
Go to the top of the page
+Quote Post
tomekp
post
Post #3





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

Ostrzeżenie: (0%)
-----


W haśle, nie w hasłach, chodzi dokładnie o to, żeby w pojedynczym haśle, nie powtarzały się owe znaki.


--------------------
escape from the execution is futile.
Go to the top of the page
+Quote Post
scanner
post
Post #4





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Przeanalizuj mój kod, jaki pokazałem tutaj


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
tomekp
post
Post #5





Grupa: Zarejestrowani
Postów: 171
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Krakół

Ostrzeżenie: (0%)
-----


A jak wylosować 2000 unikalnych haseł a następnie wstawić je do bazy MySQL ?


--------------------
escape from the execution is futile.
Go to the top of the page
+Quote Post
kszychu
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Odpalasz skrypt w pętli 2000 razy!


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
scanner
post
Post #7





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




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. ?>


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 09:07