假设我有这个密钥
string key = "WID%ij38(@$151#3da=="
如何在C ++中使用srand()
和time()
以及密钥进行播种?
无法执行srand(time(NULL)*key))
,因为key是一个字符串。
无论如何转换它?
答案 0 :(得分:2)
您可以尝试哈希字符串
srand(std::hash<std::string>{}(key));
答案 1 :(得分:2)
严格来说,the argument to srand
must be an unsigned int
。现在,您可以使用您的字符串并创建一个哈希值,为您提供unsigined int
,并从中开始工作。
当然,如果您尝试增加熵,出于安全考虑,您可能会感到失望,特别是如果字符串已修复或以任何方式来自用户。