>>>>>>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, и узри истину :)
|