The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Сгенерировать random число на 128 бит"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Сгенерировать random число на 128 бит"  
Сообщение от ufobject email(??) on 21-Июн-06, 17:00 
All, привет. Не подскажешь, как научиться генерировать random число на 128 бит в своей програмке на C++? Да так, чтоб оно не за что не повторялось...Мож кусочек когда, или ман... кто чем может :)
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Сгенерировать random число на 128 бит"  
Сообщение от smb on 21-Июн-06, 17:04 
>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>в своей програмке на C++? Да так, чтоб оно не за
>что не повторялось...Мож кусочек когда, или ман... кто чем может :)
>

/dev/(u)random?
Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная последовательность....

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Сгенерировать random число на 128 бит"  
Сообщение от ufobject email(??) on 21-Июн-06, 17:14 
>>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>>в своей програмке на C++? Да так, чтоб оно не за
>>что не повторялось...Мож кусочек когда, или ман... кто чем может :)
>>
>
>/dev/(u)random?
>Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш
>еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная
>последовательность....

Я незнаю что такое md5-ый хэш. И как мне это сделать так, чтоб генерилось 128 битное число??? Нифига не понимаю

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Сгенерировать random число на 128 бит"  
Сообщение от vic (??) on 21-Июн-06, 19:33 
>>>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>>>в своей програмке на C++? Да так, чтоб оно не за
>>>что не повторялось...

Так тебе случайное или уникальное?

>>>Мож кусочек когда, или ман... кто чем может :)
>>>
>>
>>/dev/(u)random?
>>Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш
>>еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная
>>последовательность....
>
>Я незнаю что такое md5-ый хэш. И как мне это сделать так,
>чтоб генерилось 128 битное число??? Нифига не понимаю

128 бит = unsigned char buf[16];
Дальше заполняй буфер случайностью...

man rand() or rand_or()
man srand()
/dev/(u)random опять же простаивает...

ЗЫ: Генирить можно псевдослучайные числа, для реально случайных нужен сертиф. ГСЧ :)

ЗЫ2: Есть еще неожиданное число... :)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Сгенерировать random число на 128 бит"  
Сообщение от MaximKuznetsov on 21-Июн-06, 21:00 
>>>>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>>>>в своей програмке на C++? Да так, чтоб оно не за
>>>>что не повторялось...
>
>Так тебе случайное или уникальное?
>
>>>>Мож кусочек когда, или ман... кто чем может :)
>>>>
>>>
>>>/dev/(u)random?
>>>Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш
>>>еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная
>>>последовательность....
>>
>>Я незнаю что такое md5-ый хэш. И как мне это сделать так,
>>чтоб генерилось 128 битное число??? Нифига не понимаю
>
>128 бит = unsigned char buf[16];
>Дальше заполняй буфер случайностью...
>
>man rand() or rand_or()
>man srand()
>/dev/(u)random опять же простаивает...
>
>ЗЫ: Генирить можно псевдослучайные числа, для реально случайных нужен сертиф. ГСЧ :)
>
>
>ЗЫ2: Есть еще неожиданное число... :)

приемлимый алгоритм получения длинных `хороших` псевдослучайных чисел -
сгенерить массив `плохих` псевдослучайных чисел, потом зашифровать.
Это когда важна не скорость, а качество:)

Чем шифровать можно взять из mcrypt.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Сгенерировать random число на 128 бит"  
Сообщение от ufobject email(??) on 21-Июн-06, 21:13 
>>>>>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>>>>>в своей програмке на C++? Да так, чтоб оно не за
>>>>>что не повторялось...
>>
>>Так тебе случайное или уникальное?
>>
>>>>>Мож кусочек когда, или ман... кто чем может :)
>>>>>
>>>>
>>>>/dev/(u)random?
>>>>Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш
>>>>еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная
>>>>последовательность....
>>>
>>>Я незнаю что такое md5-ый хэш. И как мне это сделать так,
>>>чтоб генерилось 128 битное число??? Нифига не понимаю
>>
>>128 бит = unsigned char buf[16];
>>Дальше заполняй буфер случайностью...
>>
>>man rand() or rand_or()
>>man srand()
>>/dev/(u)random опять же простаивает...
>>
>>ЗЫ: Генирить можно псевдослучайные числа, для реально случайных нужен сертиф. ГСЧ :)
>>
>>
>>ЗЫ2: Есть еще неожиданное число... :)
>
>приемлимый алгоритм получения длинных `хороших` псевдослучайных чисел -
>сгенерить массив `плохих` псевдослучайных чисел, потом зашифровать.
>Это когда важна не скорость, а качество:)
>
>Чем шифровать можно взять из mcrypt.
>
>

Ну в общем думаю стоит объяснить смысл моих поисков. Мне просто напросто нужно идентифицировать множество соединений... Т.е. есть сервер, который будет раздавать уникальные id (128-битные) каждому новому соединению. Естественно критично чтобы ID не повторялись, так же важно что бы в их генерации небыло системы. Вот. Если честно, и немного стыдно за это, не совсем врубаюсь в смысл 128-битного числа random'а. 128 бит это получается что 16 цифр? Сори, но можно пояснить и это если конечно не сложно...

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Сгенерировать random число на 128 бит"  
Сообщение от Дениска (??) on 22-Июн-06, 08:59 
>>>>>>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>>>>>>в своей програмке на C++? Да так, чтоб оно не за
>>>>>>что не повторялось...
>>>
>>>Так тебе случайное или уникальное?
>>>
>>>>>>Мож кусочек когда, или ман... кто чем может :)
>>>>>>
>>>>>
>>>>>/dev/(u)random?
>>>>>Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш
>>>>>еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная
>>>>>последовательность....
>>>>
>>>>Я незнаю что такое md5-ый хэш. И как мне это сделать так,
>>>>чтоб генерилось 128 битное число??? Нифига не понимаю
>>>
>>>128 бит = unsigned char buf[16];
>>>Дальше заполняй буфер случайностью...
>>>
>>>man rand() or rand_or()
>>>man srand()
>>>/dev/(u)random опять же простаивает...
>>>
>>>ЗЫ: Генирить можно псевдослучайные числа, для реально случайных нужен сертиф. ГСЧ :)
>>>
>>>
>>>ЗЫ2: Есть еще неожиданное число... :)
>>
>>приемлимый алгоритм получения длинных `хороших` псевдослучайных чисел -
>>сгенерить массив `плохих` псевдослучайных чисел, потом зашифровать.
>>Это когда важна не скорость, а качество:)
>>
>>Чем шифровать можно взять из mcrypt.
>>
>>
>
>Ну в общем думаю стоит объяснить смысл моих поисков. Мне просто напросто
>нужно идентифицировать множество соединений... Т.е. есть сервер, который будет раздавать уникальные
>id (128-битные) каждому новому соединению. Естественно критично чтобы ID не повторялись,
>так же важно что бы в их генерации небыло системы. Вот.
>Если честно, и немного стыдно за это, не совсем врубаюсь в
>смысл 128-битного числа random'а. 128 бит это получается что 16 цифр?
>Сори, но можно пояснить и это если конечно не сложно...

сдается мне не напишет человек прогу.
не 16 цифр, а 16 байт, или 8 слов. ибо сказано в писании сначало было слово, и слово было 2 байта(что, кстати, отражает используемую архитектуру в те времена).
Ну байт = 8 бит обычно, возьми калькулятор, помнож 8 на 16, и узри истину :)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Сгенерировать random число на 128 бит"  
Сообщение от ufobject email(??) on 22-Июн-06, 11:12 
>>>>>>>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>>>>>>>в своей програмке на C++? Да так, чтоб оно не за
>>>>>>>что не повторялось...
>>>>
>>>>Так тебе случайное или уникальное?
>>>>
>>>>>>>Мож кусочек когда, или ман... кто чем может :)
>>>>>>>
>>>>>>
>>>>>>/dev/(u)random?
>>>>>>Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш
>>>>>>еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная
>>>>>>последовательность....
>>>>>
>>>>>Я незнаю что такое md5-ый хэш. И как мне это сделать так,
>>>>>чтоб генерилось 128 битное число??? Нифига не понимаю
>>>>
>>>>128 бит = unsigned char buf[16];
>>>>Дальше заполняй буфер случайностью...
>>>>
>>>>man rand() or rand_or()
>>>>man srand()
>>>>/dev/(u)random опять же простаивает...
>>>>
>>>>ЗЫ: Генирить можно псевдослучайные числа, для реально случайных нужен сертиф. ГСЧ :)
>>>>
>>>>
>>>>ЗЫ2: Есть еще неожиданное число... :)
>>>
>>>приемлимый алгоритм получения длинных `хороших` псевдослучайных чисел -
>>>сгенерить массив `плохих` псевдослучайных чисел, потом зашифровать.
>>>Это когда важна не скорость, а качество:)
>>>
>>>Чем шифровать можно взять из mcrypt.
>>>
>>>
>>
>>Ну в общем думаю стоит объяснить смысл моих поисков. Мне просто напросто
>>нужно идентифицировать множество соединений... Т.е. есть сервер, который будет раздавать уникальные
>>id (128-битные) каждому новому соединению. Естественно критично чтобы ID не повторялись,
>>так же важно что бы в их генерации небыло системы. Вот.
>>Если честно, и немного стыдно за это, не совсем врубаюсь в
>>смысл 128-битного числа random'а. 128 бит это получается что 16 цифр?
>>Сори, но можно пояснить и это если конечно не сложно...
>
>сдается мне не напишет человек прогу.
>не 16 цифр, а 16 байт, или 8 слов. ибо сказано в
>писании сначало было слово, и слово было 2 байта(что, кстати, отражает
>используемую архитектуру в те времена).
>Ну байт = 8 бит обычно, возьми калькулятор, помнож 8 на 16,
>и узри истину :)

Напишет напишет... :)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Сгенерировать random число на 128 бит"  
Сообщение от ACCA (ok) on 22-Июн-06, 10:02 
Хэши здесь не помогут - нужна гарантированная неповторимость.

Я бы не постеснялся слепить число из двух кусков - вначале 32 бита time(), потом ещё 3 раза по 32 бита из rand().

На 64 битах соответственно time() и rand().

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Сгенерировать random число на 128 бит"  
Сообщение от vic (??) on 22-Июн-06, 12:06 
>Хэши здесь не помогут - нужна гарантированная неповторимость.
>
>Я бы не постеснялся слепить число из двух кусков - вначале 32
>бита time(), потом ещё 3 раза по 32 бита из rand().
>
>
>На 64 битах соответственно time() и rand().

Ага, только надо знать точные требования на программу и знать что это за идентификатор , его время жизни и т.п., а то использование time() сведет 128 бит к 96 битам, что может быть делать в данном случае низя..

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

10. "Сгенерировать random число на 128 бит"  
Сообщение от ufobject email(??) on 22-Июн-06, 16:01 
>Хэши здесь не помогут - нужна гарантированная неповторимость.
>
>Я бы не постеснялся слепить число из двух кусков - вначале 32
>бита time(), потом ещё 3 раза по 32 бита из rand().
>
>
>На 64 битах соответственно time() и rand().


ACCA, благодарствую. Я так и сделал. Все отлично.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

11. "Сгенерировать random число на 128 бит"  
Сообщение от Brick (??) on 22-Июн-06, 16:23 
можно использовадь random обычный, а для уникальность set с STL
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру