Как я могу посеять зерно с временем () и ключом (строкой)

Допустим, у меня есть этот ключ

string key = "WID%ij38(@$151#3da=="

Как я могу посеять, используя srand() в C ++ вместе с time() а ключ?

Не возможно сделать srand(time(NULL)*key)) потому что ключ это строка.

В любом случае, чтобы преобразовать это?

1

Решение

Вы можете попробовать хеширование строки

srand(std::hash<std::string>{}(key));

2

Другие решения

Не совсем так, аргумент srand должен быть unsigned int. Теперь вы можете взять строку символов и создать ее хеш, который дает вам unsigined intи работать с этим.

Конечно, если вы пытаетесь увеличить энтропию по соображениям безопасности, вы вполне можете быть разочарованы, особенно если строка исправлена ​​или поступает от пользователя каким-либо образом.

2

По вопросам рекламы [email protected]