Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
?HettЯ хотел посвятить топик скорее вопросу рандома, придумать другой вариант без коллизий в общем-то не проблема) Ну тогда еще раз читайте http://ru.wikipedia.org/wiki/Парадокс_дней_рождения и http://ru.wikipedia.org/wiki/Атака_«дней_рождения» до просветления. С выбранными вами диапазонами коллизии обязательно будут. Будут, да. Но с какой периодичностью? Не 10 раз на дню, с учетом того, что берутся 2-3 записи в среднем в секунду. К тому же там добавляется таймштамп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 12:09 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
[quot Hett]?пропущено... К тому же там добавляется таймштамп.Ну тогда у вас проблема в другом месте. http://www.php.net/manual/ru/function.srand.php Там конечно написано, что инициализация генератора происходит автоматически. Но что используется в качестве начального значения, не написано. А используется скорее всего тот же самый time(). Так что если два запроса придут одновременно, в двух параллельных потоках будет одинаково проинициализирован генератор случайных чисел, и вы получите одинаковое значение rand(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 13:33 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
Вот! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 14:10 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
HettВот!Что вот? Вы же спросили, почему у вас коллизии в коде из первого сообщения. А что в реальности надо избавиться от коллизий совсем в другом коде, написали где-то мимоходом и сильно позже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 14:47 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
Распределение должно быть равномерным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 14:49 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
HettРаспределение должно быть равномерным?Распределение чего? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 14:59 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
Возьмите serialize($_SERVER), добавьте getmypid() и microtime(). Получите md5 от всего этого и используйте в качестве уникального идентификатора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 15:22 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
?HettРаспределение должно быть равномерным?Распределение чего? Пардон, не нормальным, конечно же, а равномерным. Множества величин полученных в функцией рандом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 17:26 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
Ну вот, пожалуй надо отдохнуть, ведь изначально я уже правильно сформулировал. В общем думаю ясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 17:27 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
?Там конечно написано, что инициализация генератора происходит автоматически Да, там написано авторУстанавливает начальное число генератора случайных чисел в seed или случайное число , если seed не указан. Я понимаю, что это случайное число не случайно, но каким образом я бы мог сделать его еще случайнее с помощью инициализации srand() если эта инициализация уже проводилась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 17:29 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
Hett, вообще-то нужны не случайные, а просто разные числа. Понятно, что какие бы преобразования с одинаковыми исходными данными не делались, результат будет одинаковый. Поэтому нужно найти что-то, что отличается от запроса к запросу. Текущее время это конечно хорошо, но может и совпасть. Можно добавить getmypid() - идентификатор процесса. На линуксе одновременные запросы обычно обрабатываются в разных процессах. Можно посмотреть на параметры самого запроса - с какого адреса и порта пришел: $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT']. Вряд ли два запроса одновременно придут с одного адреса и порта. Если в апаче загружен mod_unique_id, в $_SERVER['UNIQUE_ID'] должна быть уникальная строка. Можно в конце концов полезть в /dev/urandom под линуксом или в cryptoapi под виндой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 20:50 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
?Hett, вообще-то нужны не случайные, а просто разные числа. Понятно, что какие бы преобразования с одинаковыми исходными данными не делались, результат будет одинаковый. Поэтому нужно найти что-то, что отличается от запроса к запросу. Текущее время это конечно хорошо, но может и совпасть. Можно добавить getmypid() - идентификатор процесса. На линуксе одновременные запросы обычно обрабатываются в разных процессах. Можно посмотреть на параметры самого запроса - с какого адреса и порта пришел: $_SERVER['REMOTE_ADDR'], $_SERVER['REMOTE_PORT']. Вряд ли два запроса одновременно придут с одного адреса и порта. Если в апаче загружен mod_unique_id, в $_SERVER['UNIQUE_ID'] должна быть уникальная строка. Можно в конце концов полезть в /dev/urandom под линуксом или в cryptoapi под виндой. Месье знает толк в извpащениях! (честно не мое xD) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 22:32 |
|
||
|
Какой-от не очень рандомный рандом
|
|||
|---|---|---|---|
|
#18+
Pseudo-Random vs. True Random оставлю это здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 11:21 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38238717&tid=1463690]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
8ms |
get forum data: |
1ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 329ms |

| 0 / 0 |
