Лучший способ генерировать коды активации для программного обеспечения? - PullRequest
4 голосов
/ 26 августа 2009

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

Я использую C #.

Ответы [ 4 ]

16 голосов
/ 26 августа 2009
4 голосов
/ 27 августа 2009

Это зависит от ваших целей. GUID просто генерировать, но это неприятно, если пользователь вводит его вручную. Это нормально, если активация происходит, скажем, нажатием на URL, указанный в сообщении электронной почты, или если вы можете ожидать, что пользователь скопирует и вставит значение из письма активации.

В других случаях (например, термоусадочное программное обеспечение, в котором код активации физически каким-либо образом напечатан на упаковке), пользователь будет вводить код вручную. В этом случае лучше использовать метод, схожий с тем, что используют Microsoft и Blizzard: сгенерируйте код, состоящий из пяти групп из пяти случайных буквенно-цифровых символов (пропустите гласные, если вы хотите устранить риск того, что код активации будет содержать что-то вроде 4SHIT), и проверьте каждый код, сгенерированный по основному списку на наличие дубликатов. (Хотя я думаю, что шансы даже на 100 000 последовательностей, извлеченных из {1, 2, ... 34 ^ 26 - 1}, содержащих дубликаты, довольно малы. Трудно сказать наверняка, потому что единственный способ, который я знаю для вычисления переполняется в два раза.)

2 голосов
/ 26 августа 2009

Guid.NewGuid (). ToString ()

Если вы не возражаете, длина символа 36.

1 голос
/ 26 августа 2009

Вы, вероятно, должны просто использовать Guid

...