看板 PHP 關於我們 聯絡資訊
各位好,想請教一下要寫類似運彩的開獎,像是大樂透,用 mt_rand 去亂數的話 據說到一定的數量的話會有規律,不知道有沒有什麼更好的擾亂方式 讓開出來的號碼更為混淆,感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.121.168 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1455522609.A.696.html
y2468101216: https://www.random.org 02/15 16:12
LPH66: mt_rand 要到有規律要很久很久很久 (週期是 2^19937-1) 02/15 16:22
LPH66: 所以就放心用吧 02/15 16:23
chan15: 那 mt_rand + shuffle + array_rand 如何 02/15 16:38
chan15: 咦,不對,mt_rand 是 range 取 1 02/15 16:39
chan15: http://pastebin.com/FdL4ybZ5 請各位幫忙看一下 02/15 17:46
GALINE: sha1(microtime(true) . mt_rand()) 02/16 01:06
GALINE: 若是加密需要高安全性或博弈扯到大錢,那該用更安全的作法 02/16 01:07
GALINE: 讀取 /dev/urandom 或 /dev/random,PHP7 用 random_int() 02/16 01:07
GALINE: 然後 PHP7 的 random 系列有人用實作 PHP5 可用的版本 02/16 01:08
GALINE: mt_rand() 的攻擊有人給出說明,不過我數學不好跟不太上.. 02/16 01:12
chan15: 請教一下 sha1 的原因為何 02/16 08:31
mmis1000: 理論上,sha1是無法從輸出猜測輸入的 02/16 11:12
GALINE: 不過sha1出來是40位數的hex(共160bit),轉整數要花點功夫 02/16 13:09
GALINE: 轉的時候要小心溢位,PHP整數是32或64bit 02/16 13:10
GALINE: 還要注意是 unsigned 轉成 signed...突然覺得這也滿麻煩的 02/16 13:11
chan15: http://demo.chan15.info/ssc/ 各位可以幫小弟看一下嗎 02/17 17:57