根據當前日期和時間,我可以使用什麼邏輯來生成6位數隨機數。假設我想生成一個6位數的隨機數,這個數是有效的,最長可達5秒。 5秒後,如果有人將該隨機數輸入到系統中,則系統會說它已過期。有一件事我需要提到,不會有數據庫交互。我不想生成隨機數並將其存儲在數據庫表中。 5秒的有效性邏輯將被嵌入到生成的隨機數中,因此我可以稍後驗證它是否在5秒之前生成。如何根據當前日期和時間生成6位隨機數
我問另一個論壇這個問題,他們給我的代碼來生成6位隨機數字基於當前日期和時間像
var random = new Random(System.DateTime.Now.Millisecond);
int randomNumber = random.Next(1, 500000);
是它好嗎?因爲我不是高級開發人員。如果我可以使用上述邏輯生成6位數的隨機數,那麼以後如何以編程方式確定數字是在5秒之前生成的。基本上我需要兩個例程,根據當前日期&生成6位數的隨機數,另一個例程將檢查生成的數字是否在5秒之前生成。
請指導我的概念和代碼。謝謝
嗯。你最好的選擇可能是用秒除以當前時間,除以5,並使用像md5sum這樣的散列算法,然後以md5sum爲模500000. – Dan 2012-01-02 06:27:41
爲什麼這不是一個真正的問題? – 2012-01-02 06:31:01
您試圖解決的實際問題是什麼?這聽起來像是一個即將到來的令牌,在這種情況下,加密當前時間是一個更好的解決方案。但是,沒有告訴我們你想做什麼,沒有人能回答「是不是?」。 – kdgregory 2012-01-02 15:27:53