我有一个情况我需要生成短伪随机的字母数字标记,其是唯一的,可核查,并且容易由人型能够。这些将从Web应用程序中生成。这些令牌不需要非常安全 - 它们被用于愚蠢的网页游戏中,以获得一个愚蠢的奖品。由于各种原因,客户希望这些令牌具有人类可读性,并通过电子邮件进行处理。这是不可谈判的(我知道......但这是因为我无法控制的原因)。生成短的,伪随机可验证字母数字代码
换句话说,假设我们得到的代码“ABCDE12345”
必须有一个方式说“ABCDE12345”是“有效的”。例如:在开始运行时,可能会有两到三个字符通过我编写的算法生成剩余字符的正确序列。例如,
f("AB")==="CDE12345"
两个人玩游戏不应该是可能产生同样的道理。在我看来,我很乐意用毫秒+游戏角色名称&得分来打造自制的RNG。 (也就是说,不要使用Math.random,因为这是一个Web应用程序)。这将播种上述的两个或三个字符序列。
我是否缺少任何东西?我不是在寻找一个具体的算法,而是你的建议。我错过了什么?
我假设游戏是无状态的,当它涉及到的代码? (即它不能存储已知的生成代码)? – amit
游戏在服务器意义上是无状态的。这就是说,它使用localStorage在玩家的设备上保留角色,得分等。 – TomorrowPlusX