Гарантирует ли такая конструкция уникальность значения?

Вованыч

Новичок
Гарантирует ли такая конструкция уникальность значения?

PHP:
md5( uniqid(rand(),true) )

Функция uniqid выдаст гарантированно уникальные значения, есть ли вероятность что md5 каких-то выходов в данном случае совпадут?
 
Что ж вас всех на уникальность потянуло? один в базу генерит, второй так просто.

вероятность есть. какие еще будут вопросы?
 
зенит же выиграл кубок уефа, а шансов на то, что возникнет коллизия в md5 больше.
 
есть ли вероятность что md5 каких-то выходов в данном случае совпадут?
md5 это 2^128 комбинаций => вероятность = 1 / 2^128

неужели даже такую простую комбинаторику уже все позабывали (не знают)?
 
md5 это 2^128 комбинаций => вероятность = 1 / 2^128
Если md5 - 2^128 комбинаций, это не значит, что вероятность того, что значения разных md5( uniqid(rand(),true) ) совпадут, равна 1 / 2^128.
 
Lightning
это минимальная величина. согласно теории вероятностей у тебя даже подряд может совпасть 10 раз.
когда я писал тот пост, я надеялся, что люди понимают - что сказанное мной подразумевает равномерное распределение.
 
Если хочется "непоследовательности", можно тупо xor-нить автоинкремент ;)
 
define('MY_SECRET', 73963); // от балды

$id = (int)($_GET['id']) ^ MY_SECRET;
$result = $something->getById($id);

и наоборот, соответственно. Для большей похожести на тиниурл можно в hex и обратно. Или там base64.
 
Сверху