![Shocked 8O](./images/smilies/icon_eek.gif)
![HBZ :pain1:](./images/smilies/pain25.gif)
Mike_MIPT wrote:Вот встал вопрос, нужно сгенирировать случайный пароль. Сначала пользовал rand с инициализацией от таймера. Но возникли у меня сомнения, хорошо ли это. Ну с таймером понятно, это можно побороть. Но инициализация одним лонгом, это что-то не то. Так глянул код реализации rand( под win, под unix еще не смотрел) так там кашмар, извеняюсь,какая там криптография, его туда близко подпускать нельзя. Получив из rand 2-3 значения можно смело говорить, что он выдаст на неделю вперед. Так что правильно использовать, знаю меряют шумы звуковухи, скорость вращения винта, еще что-то. Но у всех таких методов есть свои недостатки. А есть ли что-то стандартное и не дрявое? Вроде задача стандартная.
Mike_MIPT wrote:Вот встал вопрос, нужно сгенирировать случайный пароль. А есть ли что-то стандартное и не дрявое? Вроде задача стандартная.
A. Fig Lee wrote:Правильные пацаны пользуются random instead of rand
Dmitry67 wrote:Придумайте некую функцию от GUID
Niky wrote:Ну вобще-то rand по определению есть генератор псевдослучайных чисел. Если кто-то собрался его использовать для криптографии - это проблема кого-то, а не rand.
Mike_MIPT wrote:A. Fig Lee wrote:Правильные пацаны пользуются random instead of rand
Что за random?
Standard C Library Functions random(3C)
NAME
random, srandom, initstate, setstate - pseudorandom number
functions
SYNOPSIS
#include <stdlib.h>
long random(void);
void srandom(unsigned int seed);
char *initstate(unsigned int seed, char *state, size_t
size);
char *setstate(const char *state);
DESCRIPTION
The random() function uses a nonlinear additive feedback
random-number generator employing a default state array size
of 31 long integers to return successive pseudo-random
numbers in the range from 0 to 2**31 -1. The period of this
random-number generator is approximately 16 x (2 **31 -1).
The size of the state array determines the period of the
random-number generator. Increasing the state array size
increases the period.
The srandom() function initializes the current state array
using the value of seed.
The random() and srandom() functions have (almost) the same
calling sequence and initialization properties as rand() and
srand() (see rand(3C)). The difference is that rand(3C) pro-
duces a much less random sequence-in fact, the low dozen
bits generated by rand go through a cyclic pattern. All the
bits generated by random() are usable.
Mike_MIPT wrote:Вот встал вопрос, нужно сгенирировать случайный пароль.
Code: Select all
It is proved that the period is 2^19937-1 , and 623-dimensional equidistribution property is assured.