Hogyan tudok PHP-ban úgy random számsort generálni, hogy az ne ismétlődhessen? A már generált számokat adatbázisba kéne írnom? Szeretném ezt elkerülni, valami más módszer nincsen?










1, Stringként összefűzöd a két beszélgető id-jét egy elválasztó jellel.
2, Egy kétszer olyan hosszú integert generálsz belőle. Ha MAXINT a legnagyobb lehetséges user id, akkor a beszélgetes id-je userid1*MAXINT+userid2 lesz.
Mindkettőnél fontos, hogy a user id-k sorrendje determinált legyen, pl. userid1<userid2 minden esetben.





#8
mcrypt már elavult,
md5 pedig rendkívül könnyen törhető, egyiket se ajánlott már használni
Kérdező:
"Egy chathez kéne a kód ahol a privát beszélgetés ID-je ként szeretném használni, és azt szeretném, ha a felhasználó visszatér ugyanezt a privátot tudja folytatni. Tehát valahogyan a két résztvevő userID-jéből kéne generálni, hogy bármikor máskor ha privátot nyitnak az ID megegyezzen a korábban már generálttal."
Alapszabály, hogy tokenben nem tárolunk userhez kapcsolható adatot.
Ilyen esetben általános megoldás, ha generálsz egy véletlenszerű hosszú stringet és elmented adatbázisba.
Hasonlóan random stringekkel működik a legtöbb weboldal mint pl. a youtube is.
A www.youtube.com/watch?v= után egy random string van, ami semmilyen módon nem kapcsolódik a videó címéhez vagy a feltöltőhöz.
Így a "nem listázott videók", amelyek csak ezen token-el érhetőek el, nem kikövetkeztethetőek a videó szerzője vagy címe vagy egyéb tulajdonságai alapján. Csak az tudja elérni, aki tudja a linket, amiben ez a random token benne van.
A számokat pedig sokkal egyszerűbb végigpróbálgatni.
Pl. az én chat ID-m egy szám, és megnézem hogy az enyémhez képest +- 100-al találok-e helyes ID-t. Lehet nem járok sikerrel, de az ilyen támadásokat nem csak 1 gépről hatják végre, és sokkal nagyobb intervallumot meg tudnak nézni.
Egy random stringnél sokkal több kombináció létezik, főleg ha megfelelő hosszúságú így célszerű azt használni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!