在PHP中保護(hù)隨機(jī)數(shù)生成使用案例:“我忘了密碼”按鈕。我們找不到用戶的原始密碼,因?yàn)樗陨⒘行问酱鎯?chǔ),因此唯一要做的就是生成一個(gè)新的隨機(jī)密碼并通過(guò)電子郵件發(fā)送給他。這需要加密不可預(yù)測(cè)的隨機(jī)數(shù),mt_rand不夠好,一般我們不能假設(shè)托管服務(wù)將提供對(duì)操作系統(tǒng)的訪問(wèn)以安裝加密隨機(jī)數(shù)模塊等所以我正在尋找一種方法在PHP本身生成安全的隨機(jī)數(shù)。到目前為止我提出的解決方案涉及存儲(chǔ)初始種子,然后為每次調(diào)用,result = seed
seed = sha512(seed . mt_rand())這是基于sha512哈希函數(shù)的安全性(mt_rand調(diào)用只是為了獲得數(shù)據(jù)庫(kù)副本的對(duì)手的生活有點(diǎn)困難)。我錯(cuò)過(guò)了什么,還是有更好的解決方案?
- 3 回答
- 0 關(guān)注
- 778 瀏覽
添加回答
舉報(bào)
0/150
提交
取消