我有一個情況我需要生成短僞隨機的字母數字標記,其是唯一的,可覈查,並且容易由人型能夠。這些將從Web應用程序中生成。這些令牌不需要非常安全 - 它們被用於愚蠢的網頁遊戲中,以獲得一個愚蠢的獎品。由於各種原因,客戶希望這些令牌具有人類可讀性,並通過電子郵件進行處理。這是不可談判的(我知道......但這是因爲我無法控制的原因)。生成短的,僞隨機可驗證字母數字代碼
換句話說,假設我們得到的代碼「ABCDE12345」
必須有一個方式說「ABCDE12345」是「有效的」。例如:在開始運行時,可能會有兩到三個字符通過我編寫的算法生成剩餘字符的正確序列。例如,
f("AB")==="CDE12345"
兩個人玩遊戲不應該是可能產生同樣的道理。在我看來,我很樂意用毫秒+遊戲角色名稱&得分來打造自制的RNG。 (也就是說,不要使用Math.random,因爲這是一個Web應用程序)。這將播種上述的兩個或三個字符序列。
我是否缺少任何東西?我不是在尋找一個具體的算法,而是你的建議。我錯過了什麼?
我假設遊戲是無狀態的,當它涉及到的代碼? (即它不能存儲已知的生成代碼)? – amit
遊戲在服務器意義上是無狀態的。這就是說,它使用localStorage在玩家的設備上保留角色,得分等。 – TomorrowPlusX