Autor | Zpráva | ||
---|---|---|---|
tomas3333 Profil |
#1 · Zasláno: 31. 8. 2010, 12:16:44
Potrebujem generovať unikátny string v dĺžke 5 alebo 6 znakov, zložený z písmen a čísiel. Najjednoduchšie sa zdá byť využiť sčasti uniqid(); tak, že zoberiem posledných 5 znakov a na začiatok pridám náhodný znak (čiže číslo alebo písmeno). Na 10000 pokusoch za sebou som dostal 2 duplicity. Ďalším riešením by bolo zobrať to celé náhodne a generovať každý znak osobitne.
Je nejaká iná možnosť ako takýto unikátny string vygenerovať? |
||
radas Profil * |
#2 · Zasláno: 31. 8. 2010, 12:19:44
a použit timestamp by nešlo?
|
||
Str4wberry Profil |
#3 · Zasláno: 31. 8. 2010, 12:24:15
function generovatHeslo($znaku) { for ($i = 1; $i < $znaku; $i++) { $nahoda = mt_rand(0, 2); if ($nahoda == 0) { // velká písmena $pswd.= chr(mt_rand(65, 90)); } elseif ($nahoda == 1) { // malá písmena $pswd.= chr(mt_rand(97, 122)); } else { // čísla $pswd.= chr(mt_rand(48, 57)); } } return $pswd; } |
||
tomas3333 Profil |
#4 · Zasláno: 31. 8. 2010, 12:50:18
radas:
timestamp je pridlhý, navyše uniqid sa genruje z microtime(); Str4wberry: no to je to druhé riešenie ktoré som spomínal, generovať každý znak náhodne. Asi je pravda, že by takto bolo kolízií menej. Dík. |
||
Časová prodleva: 14 let
|
0