Autor Zpráva
tomas3333
Profil
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 *
a použit timestamp by nešlo?
Str4wberry
Profil
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0