【发布时间】:2012-04-29 00:39:37
【问题描述】:
我构建了一个即将启动 beta 测试的 Web 应用程序。我真的很想分发看起来不错的测试版邀请和密钥。
即A3E6-7C24-9876-235B
这是大约 16 个字符的十六进制数字。 它看起来像您可能会看到的典型 beta 密钥。 我的问题是生成这样的东西的标准方法是什么,并确保它是唯一的,并且某人猜出 beta 密钥并生成自己的密钥并不容易。
我有一些想法可能适用于 beta 密钥:
- MD5 足够安全,但它又长又丑,可能会导致 0 和 O 或 1 和 l 混淆。
- 我可以从一个长度为 16 位的大十六进制数开始。为了防止人们猜测下一个 beta 密钥可能每次都会将值增加一个随机数。即使我跳过大量数字,1111-1111-1111-1111 和 eeee-eeee-eeee-eeee 之间的数字范围也会有足够的空间。
我想我只是想知道是否有一种我在谷歌找不到的标准方法。有没有更好的办法?
【问题讨论】:
-
如何将它们从加密 PRNG 中提取出来并将它们存储在一个大数据库中?
-
使用具有小块大小的块密码(例如 Triple-des)加密数字 1 到 n 可能是一种替代方法。优点是不需要大型数据库。
标签: algorithm math encryption random beta