如何用时间()和一个键(字符串)为srand种子
How can I seed srand with time() and a key(string)
假设我有这个密钥
string key = "WID%ij38(@$151#3da=="
如何在C++中使用srand()
与time()
和密钥一起进行种子?
无法执行srand(time(NULL)*key))
,因为键是字符串。
无论如何要转换它?
您可以尝试散列字符串
srand(std::hash<std::string>{}(key));
严格来说,srand
的参数必须是unsigned int
。现在,您可以获取您的字符串,并创建一个哈希,从而得到一个unsigined int
,然后根据它进行操作。
当然,如果出于安全原因,您试图增加熵,您可能会感到失望,尤其是如果字符串是固定的或以任何方式来自用户。