[請益] 樂透系統亂數擾亂的方式

作者: 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