All, привет. Не подскажешь, как научиться генерировать random число на 128 бит в своей програмке на C++? Да так, чтоб оно не за что не повторялось...Мож кусочек когда, или ман... кто чем может :)
>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>в своей програмке на C++? Да так, чтоб оно не за
>что не повторялось...Мож кусочек когда, или ман... кто чем может :)
>/dev/(u)random?
Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная последовательность....
>>All, привет. Не подскажешь, как научиться генерировать random число на 128 бит
>>в своей програмке на C++? Да так, чтоб оно не за
>>что не повторялось...Мож кусочек когда, или ман... кто чем может :)
>>
>
>/dev/(u)random?
>Либо если программно - завести какой-нибудь счетчик, брать его, время(ms), ии..md5-ый хэш
>еще никто не отменял, например...Правда, не факт, что будет равномерная псевдослучайная
>последовательность....Я незнаю что такое md5-ый хэш. И как мне это сделать так, чтоб генерилось 128 битное число??? Нифига не понимаю
>>>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: Есть еще неожиданное число... :)
>>>>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.
>>>>>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 цифр? Сори, но можно пояснить и это если конечно не сложно...
>>>>>>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, и узри истину :)
>>>>>>>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,
>и узри истину :)Напишет напишет... :)
Хэши здесь не помогут - нужна гарантированная неповторимость.Я бы не постеснялся слепить число из двух кусков - вначале 32 бита time(), потом ещё 3 раза по 32 бита из rand().
На 64 битах соответственно time() и rand().
>Хэши здесь не помогут - нужна гарантированная неповторимость.
>
>Я бы не постеснялся слепить число из двух кусков - вначале 32
>бита time(), потом ещё 3 раза по 32 бита из rand().
>
>
>На 64 битах соответственно time() и rand().Ага, только надо знать точные требования на программу и знать что это за идентификатор , его время жизни и т.п., а то использование time() сведет 128 бит к 96 битам, что может быть делать в данном случае низя..
>Хэши здесь не помогут - нужна гарантированная неповторимость.
>
>Я бы не постеснялся слепить число из двух кусков - вначале 32
>бита time(), потом ещё 3 раза по 32 бита из rand().
>
>
>На 64 битах соответственно time() и rand().
ACCA, благодарствую. Я так и сделал. Все отлично.
можно использовадь random обычный, а для уникальность set с STL