ugrás a tartalomhoz

Véletlen szerű kreáció...

NosnOsnoS · 2011. Aug. 27. (Szo), 15.34
Halló!
Mivel lehet úgy kreálni felhasználó nevet,hogy sosem ismétli magát.Tehát ha már Kis Pista véletlenül ráment az oldalra és a gép kidobja neki azt hogy Q0wC32GW9ÁűX19ú akkor ezt már nem dobja ki senkinek sem.
Karakterek 0-9ig számok (csak 1 betűs)a-z (csak 1 betűs)A-Z és csak 15 karakter.
 
1

Új lenyomat alapu kód generátor!

Karvaly84 · 2011. Aug. 27. (Szo), 21.20
ez is törhető ha mondjuk levágják az ujjad...
2

md5 pl.md5

Blintux · 2011. Aug. 27. (Szo), 21.28
Mondjuk az aktuális dátum-idő párosból csinálsz egy md5 hasht.
3

És ha valaki látja? Újra

Karvaly84 · 2011. Aug. 27. (Szo), 21.35
És ha valaki látja?

Újra össze hasonlítja és kész!
4

Mi a biztosíték rá, hogy az

H.Z. v2 · 2011. Aug. 27. (Szo), 21.48
Mi a biztosíték rá, hogy az MD5 nem ismétlődik? Matematikailag tudnád bizonyítani? ;)
(ha jól emlékszem, MD5-ből nem lehet visszafejteni az eredeti értéket, mert több értékhez is tartozhat azonos kimenet)
Meg mi van akkor, ha nem elég jó felbontású az órája és két egyszerre érkező kérést olyan gyorsan feldolgoz a gép, hogy az időpont nem változik?
Egyébként, ha 100%-ig biztosra akarok menni, akkor gyűjtöm adatbázisba a már kiosztott kódokat és ha a generált kód már szerepel benne, akkor gyártok újat.
6

Az MD5 ismétlődik, azaz lehet

Hidvégi Gábor · 2011. Aug. 27. (Szo), 21.51
Az MD5 ismétlődik, azaz lehet találni olyan különböző karakterláncokat, amelyeknek megegyezik a hash-e (ez abból következhet, hogy fix hosszúságú az értéke).
7

És ha tele lesz a HDD?

Karvaly84 · 2011. Aug. 27. (Szo), 21.53
És ha tele lesz a HDD?
8

Tudom. Csak kicsit kötekedni

H.Z. v2 · 2011. Aug. 27. (Szo), 22.07
Tudom. Csak kicsit kötekedni akartam. :-)
14

dátum idő ip:

NosnOsnoS · 2011. Aug. 28. (V), 15.43
Vagy még lehetne 1-2módja....
Év-ip-perc-másodper-Egy input mező(*)-hónap-óra-nap
*=Például megkérdezem hány éves
Legjobb esetben 21karakter íme:(-el elválasztva a jobb megfigyelhetőség kedvéért)
2011-00.00.00.00-1-1-9-1-1-1
Ez felhasználó névnek elég hosszú...
MG:nem kell aggódni,hogy rájönnek mert a jelszó az még hosszabb....
A jelszó:
Év-ip-perc-másodper-Egy input mező(*)-hónap-óra-nap-óra-másodper-ip-év-kontinens-hét-nap-3betűs nap-ip.
vagyis ez is elég hosszú.....
15

Tényleg kezd egyre

Totti 1986 · 2011. Aug. 28. (V), 15.50
Tényleg kezd egyre egyértelműbb lenni, hogy vagy agybeteg vagy vmi bot.
Megkérdez vmit, aztán felvázol 20 másik lehetőséget?
A másodperc szó rosszul van lementve a szótárában! :D
16

Én a kontinensen konkrétan

bugadani · 2011. Aug. 28. (V), 16.08
Én a kontinensen konkrétan felnevettem. Akkor már location api és utcapontosság, sokkal jobb adat, de minimum egyedibb :)
17

Ha jól sejtem, az időzónára

H.Z. v2 · 2011. Aug. 28. (V), 16.33
Ha jól sejtem, az időzónára gondolt(???? egy program esetében kicsit érdekes gondolkodásról beszélni :D)
5

És mi az az "Új lenyomat"?

H.Z. v2 · 2011. Aug. 27. (Szo), 21.49
És mi az az "Új lenyomat"? :DD
10

Lenyomat v2.0 :)

Totti 1986 · 2011. Aug. 28. (V), 03.25
Lenyomat v2.0 :)
9

uniqid()

tgr · 2011. Aug. 28. (V), 01.41
11

tényleg nem túl jó a

Karvaly84 · 2011. Aug. 28. (V), 08.11
tényleg nem túl jó a helyesírásom... Közbe eszembe jutott a retina alapú kód generátor is.

De egyébként mindenképpen ajánlanám NosnOsnoS figyelmébe a hasitási elrásáok utána olvasását, pl a nettakadémián van videó is Ethical Hacking címszó alatt ahol többek közt a MD5-röl is van szó és a szótárazásról meg ilyesmi.
12

Az md5 egy sztringből egy

tgr · 2011. Aug. 28. (V), 10.18
Az md5 egy sztringből egy másik sztringet csinál. Ha az eredeti sztringek egyediek voltak, a kapott sztringek is egyediek lesznek (paraktikusan 1 valószínűséggel), de ettől még valahogy generálni kell a kiinduló sztringeket. Nagyjából három egyszerű módszer van erre:
- véletlen sztringeket generálsz (pl. base_convert(mt_rand(), 10, 36)), figyeled, hogy ütközik-e már meglévővel, ha igen, eldobod, és újat generálsz. Ha a tartomány, amiből válogatsz, sokkal nagyobb, mint a felhasználók számának a négyzete, akkor az ütközések ritkák lesznek.
- a pontos időből generálod a felhasználónevet; pl. uniqid() vagy a PECL uuid csomagja. Ezt szokás kombinálni az előzővel, pl. md5(uniqid(mt_rand(), true)).
- veszel egy minden sztringgenerálásnál növelt számot (pl. a userid-t), és abból generálsz pszeudovéletlen sztringet valami erre a célra kitalált függvénnyel. (Ez általában ugyanaz a függvény lesz, amivel véletlenszámot generálnál, csak előtte beállítod a seedet.)
13

Az md5 egy sztringből egy

bugadani · 2011. Aug. 28. (V), 10.33
Az md5 egy sztringből egy másik sztringet csinál.

Eddig igaz.
Ha az eredeti sztringek egyediek voltak, a kapott sztringek is egyediek lesznek.

Ez viszont nagyon nem. Mivel az MD5 fv. végtelen halmaz -> véges halmaz irányú leképezés, triviális, hogy vannak ütközések, ismétlődő kimeneti stringek, amiket mellesleg nagyon sokan ki is használnak támadó célokra.
A legegyszerűbben egyedi (ellenben nem véletlenszerű) felhasználóneveket akkor kapna, ha mindig növelne egy számot. Ha szóba jöhet a túlcsordulás lehetősége, akkor meg a számot stringként kell tárolni, kellően nagy hosszal ahhoz, hogy elképzelhető időtartományon belül ne legyen probléma a túlcsordulásból.
Ha szükség van véletlenszerűségre, elég egyszerű pszeudo-random számot generáltatni, azt el lehet tárolni, és ellenőrizni, hogy már generálták-e. Ha igen, újat kell generálni. Csak itt is figyelni kell azt, hogy az éppen használt értékkészletben ne fogyjanak el a számok.
Ezt meg meg lehet fejelni tetszőleges 1:1 leképezéssel stringgé alakító függvénnyel, hogy azért mégse egy szám legyen mindenki, mint Az ember tragédiájában.
19

Az MD5 128 bites sztringet

tgr · 2011. Szep. 6. (K), 13.32
Az MD5 128 bites sztringet generál, vagyis n bemenetre annak az esélye, hogy két kimenet ütközik, n^2/2^128. Ha a Föld összes lakója ezer különböző néven regisztrálna az oldalra, akkor lenne körülbelül egy a tízmillióhoz az esélye annak, hogy kettő közülük azonos MD5 hasht kap. Erre mondtam, hogy praktikusan 1 valószínűséggel.
18

Az md5 egy sztringből egy

kuka · 2011. Aug. 29. (H), 09.57
Az md5 egy sztringből egy másik sztringet csinál. Ha az eredeti sztringek egyediek voltak, a kapott sztringek is egyediek lesznek
Gondolom annak idején ezt kihagytad. Predicting the winner of the 2008 US Presidential Elections using a Sony PlayStation 3
20

Szerintem inkább kezdjük

whiteman0524 · 2011. Szep. 10. (Szo), 12.50
Szerintem inkább kezdjük azzal, hogy elmagyarázod hogy ez mire kéne neked pontosan.

Egyébként meg nem érdemes sztringekkel bajlódni, mert hosszúak és erőforrásigényesek. Továbbá az egyetlen tuti biztos megoldás az ismétlődés elkerülésére, ha adatbázisba mentesz és mindig vizsgálod hogy nincs-e benne az új kreálandó sztring, de mint mondtam ez nem a legjobb megoldás. Javaslom hogy felejtsd el a sztringeket, és használj egyszerű integer ID-ket, vagyis egyszerű számokat. Ekkor nem kell majd bajlódni az adatbázisban turkálással sem, mert egyszerűen mindig egyel nagyobb számot kap az új felhasználó mint az előtte levő és kész. Ha pedig mindenképpen ilyen sztringekre vágysz, akkor az imént említett ID-ket felhasználhatod ilyen egyedi sztringek generálására. Tehát ha Kis Pista ID-je az mondjuk 24, akkor erre ráeresztesz egy sha1-et, vagy egy md5-öt (ami önmagában még két különböző ID esetén is adhat azonos kimenetet) és a végéhez hozzácsapod még az ID-t is. Így 100% hogy nem lesz soha az életbe két egyforma sztringed.
21

erre ráeresztesz egy sha1-et,

tgr · 2011. Szep. 11. (V), 00.42
erre ráeresztesz egy sha1-et, vagy egy md5-öt (ami önmagában még két különböző ID esetén is adhat azonos kimenetet) és a végéhez hozzácsapod még az ID-t is. Így 100% hogy nem lesz soha az életbe két egyforma sztringed.


A soft error (adatok véletlen megváltozása a memóriában, pl. a kozmikus sugárzás vagy a nyomtatott áramkörökben használt anyagok nagyon enyhe radioaktív sugárzása miatt) esélye kb. 10^-13 per óra (1); ha feltesszük, hogy egy 100G-s memória adott bájtjának kell megváltoznia adott ezredmásodpercben ahhoz, hogy ez véletlen ütközést okozzon az általad leírt biztonságos algoritmusban, akkor az oldal egy éves fennállása alatt kb. 10^-26 eséllyel okoz soft error ütközést. Egy MD5 ütközés esélye egymillió felhasználó esetén kb. ugyanekkora, SHA-1 ütközés esélye kb. 10^-36. Teljesen felesleges FUD, hogy a kriptográfiailag (valamennyire) biztonságos hash függvényeknél a véletlen ütközésnek bármi gyakorlati jelentősége lenne.