Autor Zpráva
PP
Profil *
Potreboval by som vedieť, akým spôsobom sa generuje reťazec SID a aká je pravdepodobnosť výskytu už vygenerovaného SID v čase (v skratke 13:00 bol SID abcd12df, následne bol zrušený a prvdepodobosť , že za tri minuty bude pridelený SID abcd12df je ?).
Ďakujem za odpoveď alebo odkaz na materiál.
nightfish
Profil
PP
v skratke 13:00 bol SID abcd12df, následne bol zrušený a prvdepodobosť , že za tri minuty bude pridelený SID abcd12df je ?).
hoooooodně malá

víceméně ji vypočítáš jako 1 : P
kde P = x^y, kde y = počet znaků vygenerovaného session id, x = počet různých znaků, které se na jedné pozici mohou objevit (tzn. 16 pro hexa, 27 pro americkou abecedu, ...)
Joker
Profil
Nevím, jak přesně se tvoří, ale asi to bude nějaký způsob získání "náhodného" ID, něco jako v normálním skriptu třeba md5(microtime()).

Pravděpodobnost kolize by měla být nulová. Myslím, že technicky nepůjde založit novou relaci s již existujícím session id.
Joker
Profil
aktualizace: Sorry, špatně jsem pochopil otázku, přehlédl jsem, že tam je že ta původní relace byla mezitím zrušena.

Pak ta pravděpodobnost myslím nezáleží na tom jaký čas uplyne, ale kolik mezitím udělám těch generování.
PP
Profil *
Joker
něco jako v normálním skriptu třeba md5(microtime()).

Vyzerá, že to asi bude založené na tomto princípe+ nejaké čačky okolo. Potom by bola otázka aká je pravdepodobnosť, že
md5 vygeneruje dva rovnaké reťazce pri rozdielnom microtime. Ale to už nepotrebujem. Ale, ak by to náhodou niekto presne vedel(md5 alebo SID)pre zaujímavosť nech napíše.
Joker
Profil
PP
To je celkem jednoduché: Stejně jako PHP session ID má MD5 32 bajtů = 256 bitů = 2^256 různých kombinací.
Pravděpodobnost, že MD5 dvou náhodných řetězců bude shodná, je jedna lomeno tím číslem, takže pokud dobře počítám, je to přibližně:
0,00000000000000000000000000000000000000000000000000000000000000000000 000000086 procenta

:-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0