![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
HackMan |
|
|||
![]() Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
топик
-------------------- Завтра - это самый загруженный день недели ![]() ![]() ![]() |
|||
|
||||
Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: нет Всего: 70 |
Настолько, насколко уникален хеш от неповторяющихся занчений числа(если конечно время не подкручивать
![]() |
|||
|
||||
HackMan |
|
|||
![]() Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
то есть можно смело использовать эту конструкцию для генерации имён файлов, которые складируются в одну папку и не бояться возможности остаться без какого-то файла?
-------------------- Завтра - это самый загруженный день недели ![]() ![]() ![]() |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Лучше использовать uniqid(). Он генерирует уникальные значения так же с использованием микровремени, но значение более уникальным получается.
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 5 Всего: 360 |
||||
|
||||
Garret |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 16.9.2006 Где: Киев Репутация: нет Всего: 2 |
Если файлов не пара миллионов то вероятность совпадения мизерная.
|
|||
|
||||
HackMan |
|
|||
![]() Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
а можете привести две даты, md5 hash которых будет идентичен?
![]() -------------------- Завтра - это самый загруженный день недели ![]() ![]() ![]() |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 5 Всего: 360 |
Честно сказать, нет ни желания, ни возможности. В криптографии такое называется "birthday attack". Вероятность, что в группе людей найдётся человек у которого день рождения совпадает с твоим мыла, но вероятность того, что в этой группе есть два человека с одинаковым ДР - достаточна велика. т.е вероятность, что найдёшь число дающее заданный хэш мала, но найти два, которые дают любой одинаковый - значительно больше. хэш у нас 128 бит, значит 2^128 различных значений, значит за 2^129 секунд у тебя будет в среднем "пропадёт" половина файлов.
|
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Значений md5 - 16^16, если не изменяет память.
Значений microtime сосчитать практически нереально, т.к. дробна часть может быть разной (где-то 10^10 также) для 10^10 значений микротайм до текущей даты (приблизительно). Так что вероятность - считай-те сами. Вероятность повтора ничтожна мала, учитывая принципы статистики, это даже под закон больших чисел не подпадает, так что 0. |
|||
|
||||
HackMan |
|
|||
![]() Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
а насколько уникально uniqid()? можно ли его без опасения использовать для имён файлов?
![]() -------------------- Завтра - это самый загруженный день недели ![]() ![]() ![]() |
|||
|
||||
BuShaRt |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1391 Регистрация: 29.6.2006 Репутация: 4 Всего: 6 |
Mal Hack,
Разве есть разница, какие аргументы переданны md5? На сколько я понимаю, разницы не какой в том плане, что если значений md5 - 16^16, то оно и будет 16^16, какие бы значения через него не пропускали. И того 18 446 744 073 709 551 616 комбинаций. Да вероятность совпадения ничтожно мала, но я считаю, что тут в целом задействован тот же принцип рандома, а на сколько коварен рандом знает наверно каждый, кто с ним пробывал хотя бы раз работать... Поэтому не исключенно, что система будет работать, но в один прекрасный день, после запуска скрипта прозойдет даже более одного совпадения... рандом, что тут поделаешь... Добавлено через 2 минуты и 27 секунд ![]() Если бы рескнули играть в русскую рулетку из револьвера с 18 446 744 073 709 551 615 пустыми ячейками и 1 полной, то используйте этот метод, я бы не извращался и сэмулировал AUTO_INCREMENT. |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Разницы, конечно, нет. Я имею ввиду то, что возможных параметров для md5 может быть больше чем число возможных результатов выполнения функции. Т.е. фактически это как выливание воды из ведра, когда оно заполнено, а ты туда льешь. а какая разница, через md5 жу пропускать будешь, то все равно теже 16^16. |
|||
|
||||
HackMan |
|
|||
![]() Юзверь-программист ![]() ![]() Профиль Группа: Участник Сообщений: 391 Регистрация: 18.6.2005 Где: .ua Репутация: 8 Всего: 9 |
нет, а если не через md5() пропускать, насколько уникально uniqid()?
-------------------- Завтра - это самый загруженный день недели ![]() ![]() ![]() |
|||
|
||||
smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
HackMan, если файлы не будут создаваться чаще, чем раз в секунду (или будет применена блокировка, чтобы такого не произошло) то для имени файла вполне подойдет date().
|
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 5 Всего: 360 |
лана
![]() Это убивает практически любую коллизию, потому что для коллизии необходимо, чтобы две строки одновременно дали один хэш. Ну это может произойти только если файлы одинаковы, а это нам даже пофиг. Конечно вероятность коллизии и тут нулю не равна, но значительно меньше чем у просто мд5. Для уникальности можно ИП клиента присобачить, и/или его ник. Тогда уж точно пересечений не будет. а uniqueid базируется на времени, точнее на миллисекундах. Именно поэтому в функцию рекомендуется передавать доп. аргумент-prefix. Дело не в том, что мд5 плохой, а в том, что надо себе отчёт отдавать, что от коллизий никто не застрахован. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |