[请益] 乐透系统乱数扰乱的方式

楼主: chan15 (ChaN)   2016-02-15 15:50:07
各位好,想请教一下要写类似运彩的开奖,像是大乐透,用 mt_rand 去乱数的话
据说到一定的数量的话会有规律,不知道有没有什么更好的扰乱方式
让开出来的号码更为混淆,感谢
作者: y2468101216 (芸)   2016-02-15 16:12:00
作者: LPH66 (-6.2598534e+18f)   2016-02-15 16:22:00
mt_rand 要到有规律要很久很久很久 (周期是 2^19937-1)所以就放心用吧
楼主: chan15 (ChaN)   2016-02-15 16:38:00
那 mt_rand + shuffle + array_rand 如何咦,不对,mt_rand 是 range 取 1http://pastebin.com/FdL4ybZ5 请各位帮忙看一下
作者: GALINE (天真可爱CQD)   2016-02-16 01:06:00
sha1(microtime(true) . mt_rand())若是加密需要高安全性或博弈扯到大钱,那该用更安全的作法读取 /dev/urandom 或 /dev/random,PHP7 用 random_int()然后 PHP7 的 random 系列有人用实作 PHP5 可用的版本https://github.com/paragonie/random_compatmt_rand() 的攻击有人给出说明,不过我数学不好跟不太上..http://crypto.stackexchange.com/questions/2231
楼主: chan15 (ChaN)   2016-02-16 08:31:00
请教一下 sha1 的原因为何
作者: mmis1000 (秋月恋枫)   2016-02-16 11:12:00
理论上,sha1是无法从输出猜测输入的
作者: GALINE (天真可爱CQD)   2016-02-16 13:09:00
不过sha1出来是40位数的hex(共160bit),转整数要花点功夫转的时候要小心溢位,PHP整数是32或64bit还要注意是 unsigned 转成 signed...突然觉得这也满麻烦的
楼主: chan15 (ChaN)   2016-02-17 17:57:00
http://demo.chan15.info/ssc/ 各位可以帮小弟看一下吗

Links booklink

Contact Us: admin [ a t ] ucptt.com