Google Adwords促销代码背后的数学原理是什么,以及如何在自定义应用程序中复制它们?



最近我看到Google AdWords正在共享促销代码,使用它们发表文章可以获得200美元。

问题是这样的:很明显,代码是一个大的字符组合,比如:9842 - a251 - b51s - 1250,如果你尝试任何其他输入,但他们给它会失败,告诉你代码是无效的。这当然很好,因为你不想让任何"机器人"为你生成代码。

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

你知道这是怎么做的吗?

谢谢大家!

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

最简单的方法是:

  1. 设置字母

    string alpha = "0123456789abcdefghijklmnopqrstuvwxyz";

  2. 设置最终码的长度

    int final = 16; string code="";

  3. 从字母表

  4. 生成字符

.

int i = final;
while( i-->0 ){
string += alpha[ Math.random(0,alpha.length) ]
}

取连接到固定字符串的自动编号的哈希值:

"My long long nonsense string 0000001"

"My long nonsense string 0000002"

哈希擅长从几乎相同的字符串中生成截然不同的代码。如果有重复的,请扔掉。

最新更新