0

最近我看到 Google AdWords 正在共享促销代码,这给你 200 美元与他们一起发布。

问题是这样的:显然,代码是字符的大组合,例如:9842 - a251 - b51s - 1250,如果您尝试任何其他输入,但他们给出的内容将失败,告诉您代码无效。这当然很好,因为您不希望任何“机器人”为您生成代码。

那么,做这样的事情的最佳实践是什么?我一直在考虑并使用大量字符,并以随机序列生成它们是否可以完成,但我认为一些“概率”模型会更合适。

你知道它是如何正确完成的吗?

谢谢你们!

4

3 回答 3

1

最安全的方法是使用加密 PRNG 生成足够长的随机代码(理想情况下至少 128 位),并将有效 ID 列表存储在数据库中。当有人输入代码时,将其与数据库进行检查并将其标记为已使用。

于 2011-10-11T23:33:03.140 回答
1

最简单的方法是:

  1. 设置一个字母

    string alpha = "0123456789abcdefghijklmnopqrstuvwxyz";

  2. 设置最终代码的长度

    int final = 16; string code="";

  3. 从字母表中生成字符

.

int i = final;
while( i-->0 ){
string += alpha[ Math.random(0,alpha.length) ]
}
于 2011-10-11T11:58:13.210 回答
0

获取连接到固定字符串的 auto-inc 数字的哈希:

“我的长无意义字符串 0000001”

“我的长无意义字符串 0000002”

哈希擅长从几乎相同的字符串生成大不相同的代码。扔掉重复的,如果你有的话。

于 2011-10-11T13:39:20.163 回答