我当然不能为此使用随机生成器。目前我正在从 unixtime()+microtime() 创建一个 CRC32 哈希。
有没有比散列 time()+microtime() 更聪明的方法?
虽然我对结果并不完全满意,我希望它更随机,但我可以看到其中的强烈模式,直到我添加了更多对 MicroTime() 的调用,但它变得慢了很多,所以我正在寻找一些这样做的最佳方式。
这个愚蠢的代码生成了迄今为止我能做出的最好的输出,计算是必要的,或者我可以在输出中看到一些模式:
starthash(crc32);
addtohash(crc32, MicroTime());
addtohash(crc32, time(NULL)); // 64bit
addtohash(crc32, MicroTime()/13.37f);
addtohash(crc32, (10.0f-MicroTime())*1337.0f);
addtohash(crc32, (11130.0f-MicroTime())/1313137.0f);
endhash(crc32);
MicroTime() 返回程序启动后经过的微秒。我已将 addtohash() 重载到每种可能的类型。
我宁愿采用非库解决方案,反正大概只有大约 10 行代码,我不想安装庞大的库,因为我实际上并不需要那么多东西,而且我对代码比对代码更感兴趣只是从函数调用中使用它。