好的,我正在使用原始 SHA1 散列来播种 Mersenne Twister 伪随机数生成器,生成器让我可以选择使用 unsigned long 或 unsigned long 数组播种
我正在使用的 SHA1 类将哈希作为 20 字节的无符号字符数组提供给我
我想我可以将这个 chars 数组重铸为 longs 数组以获得工作种子,但我怎么知道得到的 longs 数组有多长?
示例代码:
CSHA1 sha1;
sha1.Update((unsigned char*)key, size_key);
sha1.Final();
unsigned char* hash;
sha1.GetHash(hash);
// Seed the random with the key
MTRand mt((unsigned long*)hash, <size of array of longs>);
我希望没有数据丢失(因为没有字节被丢弃),因为我需要它来保持加密安全