Kako bi bilo mogoče ustvariti naključen, edinstven niz s številkami in črkami za uporabo v povezavi za preverjanje? Tako kot pri ustvarjanju računa na spletni strani, ko vam pošlje e-pošto s povezavo in morate klikniti to povezavo, da preverite svoj račun... ja... eno od teh.
Kako lahko ustvarim takšno povezavo s PHP?
Update: Pravkar sem se spomnil na uniqid()
. To je funkcija PHP, ki ustvari edinstven identifikator na podlagi trenutnega časa v mikrosekundah. Mislim, da bom to uporabil.
Obvestilo o varnosti: Ta rešitev se ne sme uporabljati v primerih, ko lahko kakovost naključnosti vpliva na varnost aplikacije. Zlasti `
rand()
inuniqid()
nista kriptografsko varna generatorja naključnih števil. Za varno alternativo glejte Scottov odgovor.
Če ne potrebujete, da je v daljšem časovnem obdobju popolnoma edinstven:
md5(uniqid(rand(), true))
V nasprotnem primeru (glede na to, da ste že določili edinstveno prijavo za svojega uporabnika):
md5(uniqid($your_user_login, true))
Ta funkcija ustvari naključni ključ s številkami in črkami:
function random_string($length) {
$key = '';
$keys = array_merge(range(0, 9), range('a', 'z'));
for ($i = 0; $i < $length; $i++) {
$key .= $keys[array_rand($keys)];
}
return $key;
}
echo random_string(50);
Izhodni primer:
zsd16xzv3jsytnp87tk7ygv73k8zmr0ekh6ly7mxaeyeh46oe8
npr. (v psevdokodi)
int myInt = random(0, numcharacters)
char[] codealphabet = 'ABCDEF12345'
char random = codealphabet[i]
repeat until long enough