![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.02.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
witam wszystkich
wiem o tym ze ten problem byl juz tu poruszany ale nie moge znalesc tego chodzi mi mianowicie o generowanie kodów w locie prosze o pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 602 Pomógł: 0 Dołączył: -- Skąd: W - WA -> GRO Ostrzeżenie: (0%) ![]() ![]() |
Jest wiele sposobow. Wymienie kilka funkcji, ktore mozna polaczyc do otrzymania losowego stringa:
crc32(); date(); mt_rand(); mktime(); md5(); ... -------------------- Zanim zadasz pytanie, zawsze wczesniej zajrzyj do manuala ( pl.php.net/manual/pl/ ).
Szukasz skryptow - www.hotscripts.com |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.02.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
dzieki to wiem ale kiedys przewijal sie ty taki fajny skrypcik mnoze go ktos posiada??
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat dzieki to wiem ale kiedys przewijal sie ty taki fajny skrypcik mnoze go ktos posiada??
Hmm.. nie wiem czy dobrze zapamietalem, bo to skomplikowany skrypt :-D [php:1:6ef9b63976]<?php echo md5(uniqid(rand())); ?>[/php:1:6ef9b63976] -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 1.02.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
wlasnie wlasnie cos takiego
i to bylo nawet tutaj o ile mnie pamiec nie myli |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 166 Pomógł: 0 Dołączył: 30.01.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 2 Dołączył: 25.08.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
np..
[php:1:91a150d1b5]<?php print md5(date("U")); ?>[/php:1:91a150d1b5] |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat np..
[php:1:3ddd8fca74]<?php print md5(date("U")); ?>[/php:1:3ddd8fca74] Zbyt trywialne do wykrycia. Dobrze losowy identyfikator musi bazować na szybkozmiennym źródle o dużej entropii. Znając w przybliżeniu czas stworzenia takiego id można szybko odnaleźć właściwy. Lepszym jest pomysł bazowania na liczbie mikrosekund (tak jak to robi np. uniqid) gdyż zmienia się ona znacznie szybciej. Ja, osobiście, korzystam w takich wypadkach z mikrosekund, kilku rand()'ów, zawartości REMOTE_ADDR i REMOTE_PORT, loginie i haśle użytkownika (jeśli występują), pidzie procesu i zawartości zmiennych środowiskowych. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ja, osobiście, korzystam w takich wypadkach z mikrosekund, kilku rand()'ów, zawartości REMOTE_ADDR i REMOTE_PORT, loginie i haśle użytkownika (jeśli występują), pidzie procesu i zawartości zmiennych środowiskowych.
Bez przesady. Zgodnie z tym co napisano w "PHP4. Aplikacje" aby identyfikator byl praktycznie nie do złamania wystarczy takie cos: [php:1:4ffec4ca6f]<? srand((double) microtime()*1000000); $id=md5(uniqid(rand())); ?>[/php:1:4ffec4ca6f] Z tego masz 340 282 366 920 938 463 463 374 607 431 768 211 456 mozliwych wartosci. A wiec chyba starczy, co? :-) -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Bez przesady.
Zgodnie z tym co napisano w "PHP4. Aplikacje" aby identyfikator byl praktycznie nie do złamania wystarczy takie cos: [php:1:41c8d6a39b]<? srand((double) microtime()*1000000); $id=md5(uniqid(rand())); ?>[/php:1:41c8d6a39b] Z tego masz 340 282 366 920 938 463 463 374 607 431 768 211 456 mozliwych wartosci. A wiec chyba starczy, co? :-) No może faktycznie, czasami jestem paranoikiem. :wink: Ale: [php:1:41c8d6a39b]<?php $id=md5(date('U')); ?>[/php:1:41c8d6a39b] to jednak trochę za słabo. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale:
[php:1:eb1ec5e307]<?php $id=md5(date('U')); ?>[/php:1:eb1ec5e307] to jednak trochę za słabo. Zgadzam sie, chodzilo mi o Twoje sposoby :-) Ale dobrze, że nie dał [php:1:eb1ec5e307]<?php $id=md5(date('Y')); ?>[/php:1:eb1ec5e307] :-) -------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 222 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat [php:1:55ee4cc557]<?
srand((double) microtime()*1000000); $id=md5(uniqid(rand())); ?>[/php:1:55ee4cc557] Z tego co jest napisane w manualu wynika, że od php 4.2.0 nie trzeba inicjować generatora liczb losowych (srand()). Nie wiem jednak jak sie ma podawane ziarno w srand() do powtarzalności liczb wylosowanych przez rand(). Ja bym jednak opóścił srand() - bedzie jeszcze prościej. -------------------- pozdrawiam, chfast
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 0 Dołączył: 29.08.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
To ja sie jeszcze dorzuce z czyms takim:
[php:1:b1be3a0277]<?php function makeRandomPassword() { $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0; while ($i <= 7) { $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } $random_password = makeRandomPassword(); echo "Random Password is $random_password n"; ?>[/php:1:b1be3a0277] -------------------- pozd.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 02:35 |