我會盡量簡單,清晰和直接。我的問題如下:我有一個項目,我需要 爲刮卡生成代碼。這些scrath卡打印就像你用來給你的手機充電。刮卡的代碼
該系統是人們購買卡片,獲取卡片上的代碼,然後調用TOIP服務器(Asterisk)並插入代碼以訪問服務。它有三次嘗試輸入正確的代碼。
我想做一個PHP程序來生成這些代碼,所以我當然需要通過一個PRNG(僞隨機數生成器)。我的約束是:
- 當人們打電話時,代碼不應該太長,但足夠長以確保安全。
- 當輸入代碼 與存儲在數據庫中的數據(用於統計目的)之間進行比較時,需要系統足夠快。
所以我的問題是:
- 是否正確使用PRNG?
- 如果是的話,你是否知道一個足夠強大的隨機數生成?
- 行業使用哪些標準?
- 如果在百萬個代碼上進行比較,如何使比較算法足夠快?
感謝您的時間和答案。
「比較」是什麼意思?你只是檢查代碼是否存在/有效? – NullUserException
另一種選擇是根據db +鹽中的數據生成散列。爲此,正確的鹽化散列輸出與正確的RNG輸出一樣難以破解。 –
** @NullUserException **:確切。對不起,如果它不明確。實際上我希望檢查儘可能快。電話是在「實時」的領域,所以......; ** @ Marc B **:謝謝你的提示,我會以這種方式學習。 – RedLion