随机数——计算机有没有办法得到真正的随机数
rand 这鬼函数大家都知道,很容易破解
需要的是 一种不能在两台机器上产生出相同系列的随机数
现在想到的方法 是利用不同时刻 读取CPU内部定时器的值,
这个值 相对于某个数的余数是随机的
测试了一下, 这样的随机分部是比较均匀的,基本能满足需要
我自己想不出这样随机数的破解方法 但还是不放心
1. 各位帮忙看看这样产生随机数的方法 是不是理论上可行的
可能存在的破解方法
2. 也希望有大吓能 提供更好的方法
int RndNum(int rang)
{
if(rang < 1)
rang = 1;
__int64 cnt;
_asm
{
rdtsc //rdtsc 可以得到 CPU 内部定时器的值, 每经过一个 CPU 周期, 这个定时器就加一
mov DWORD PTR cnt, EAX // 当远远大于 rang时,取的随机值感觉上比较好
mov DWORD PTR (cnt +4), EDX
}
int r = cnt % rang;
return(r);
}