В чем смысл рекламных кодов Google Adwords и как их копировать в пользовательское приложение? - PullRequest
0 голосов
/ 11 октября 2011

недавно я видел, что Google AdWords делится промо-кодами, что дает вам 200 долларов за публикацию с ними.

Вопрос в следующем: очевидно, код представляет собой большую комбинацию символов, что-то вроде: 9842 - a251 - b51s - 1250, и если вы попробуете любой другой ввод, но то, что они дают, не даст вам понять, что код недействителен. Это, конечно, хорошо, потому что вы не хотите, чтобы какой-либо «робот» генерировал ваши коды для вас.

Итак, каковы лучшие практики для того, чтобы сделать что-то подобное? Я размышлял и использовал большое количество символов и генерировал их в случайных последовательностях, если бы это было возможно, но я думаю, что какая-то «вероятностная» модель подойдет лучше.

Вы знаете, как это правильно делается?

Спасибо всем!

Ответы [ 3 ]

1 голос
/ 12 октября 2011

Самый безопасный способ сделать это - использовать криптографический PRNG для генерации достаточно длинного случайного кода (не менее 128 бит, в идеале) и сохранения списка допустимых идентификаторов в базе данных. Когда кто-то вводит код, сверяйте его с БД и пометьте как использованный.

1 голос
/ 11 октября 2011

Самый простой способ:

  1. установить алфавит

    string alpha = "0123456789abcdefghijklmnopqrstuvwxyz";

  2. установить длину окончательного кода

    int final = 16; string code="";

  3. генерирует символы из алфавита

.

int i = final;
while( i-->0 ){
string += alpha[ Math.random(0,alpha.length) ]
}
0 голосов
/ 11 октября 2011

Возьмите хэш числа авто-inc, соединенного с фиксированной строкой:

"Моя длинная бессмысленная строка 0000001"

"Моя длинная бессмысленная строка 0000002"

Хэши хороши для генерации совершенно разных кодов из почти одинаковых строк.Выбрасывайте дубликаты, если они у вас есть.

...