Алгоритм генерирования ключа на C#
|
|
Riketta | Дата: Суббота, 14 Января 2012, 12:00 | Сообщение # 1 |
Strategist
Сейчас нет на сайте
| Нужен алгоритм, который будет генерировать разные ключи одинакового типа. Что-то вроде SC3FR-RRTGG-FGGH5-KJKLN-55UT7 или подобные.
Алгоритм должен работать и для проверки валидности ключа. Т.е. генерирование и проверка по одному алгоритму.
Можно исходники KeyGen'ов. Алгоритмы шифрования есть, а вот самого ключа нет
Пожалуйста помогите Ваши идеи пожалуйста.
Fougerite - Rust Server OpenSource API TerraDev - Terraria OpenSource Hack
Сообщение отредактировал Riketta - Суббота, 14 Января 2012, 12:14 |
|
| |
Arhimondus | Дата: Суббота, 14 Января 2012, 14:32 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| Например нам нужен 8-и значный код. Исходные данные: Имя пользователя Имя пользователя: MyName Циклически сдвигаем буквы (по алфавиту) пользователя например на численную сумму всех символов в имени. M = 77 y = 121 N = 78 a = 97 m =109 e = 101 В сумме = 583 Сдивагаем циклически каждую букву по алфавиту на 583 позиции. 77 + 583 = 660 660 - (660 / 26) * 26 = 10 (буква J) 121 + 583 = 704 704 - (704 / 26) * 26 = 2 (буква B ) ... 7-ой символ кода делаем исходя из буквы M 8-ой символ кода делаем исходя из буквы y
Можно сдвигать и не на сумму, а на позицию каких-либо символов. Допустим мы вычисляем 5-ый по счёту символ кода. Сдвигаем символ на сумму и на 5.
Сообщение отредактировал Arhimondus - Суббота, 14 Января 2012, 14:35 |
|
| |
Vinchensoo | Дата: Суббота, 14 Января 2012, 14:37 | Сообщение # 3 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| Причем тут шарп-то? Или не в состоянии переложить алгоритм в код?
|
|
| |
TimKruz | Дата: Суббота, 14 Января 2012, 16:12 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Riketta, берёшь и придумываешь любой алгоритм. Что сложного? Специальных алгоритмов генерирования и инструментов для этого на C# наверняка нет, т.к. в данном случае использовать стандартные или популярные методы бессмысленно - легко "крякнут" защиту, исходя из опыта вскрытия подобных программ.
Quote (Riketta) Алгоритмы шифрования есть, а вот самого ключа нет А ключ ты либо сам придумываешь (пару серия-ключ), либо предлагаешь ввести пользователю (предлагаешь подтвердить лицензию через интернет). Далее программа должна свериться с собственным алгоритмом, либо с базой на сервере.
*** Т.е., например, вместе с программой пользователь получает что-то типа серийного номера, а потом, купив программу, получает ключ. Программа по своему алгоритму пытается преобразовать в ключ в этот номер, и если совпадает - даёт доступ. Или другой вариант - пользователь покупает ключ, вводит в программу, та запрашивает сервер - был ли куплен и активирован этот ключ, далее сервер, если ключ был куплен, но не активирован, привязывает в своей базе этот ключ к номеру этой копии программы. Номер генерируется и сохраняется при первом запуске программы, так что скопировав у друга получишь программу с другим номером и ключ не подойдёт (сервер ответит, что ты - не тот, за кого себя выдаёшь). Впрочем, любой алгоритм можно обмануть. Или, в конце концов, забить оператором NOP (Ассемблер).
Сообщение отредактировал TimKruz - Суббота, 14 Января 2012, 16:21 |
|
| |
Riketta | Дата: Суббота, 14 Января 2012, 16:56 | Сообщение # 5 |
Strategist
Сейчас нет на сайте
| Все, написал алгоритм уже сам. : ) Работает. Его разглашать не буду в целях безопасности проекта. Если кому понадобиться - пишите в ЛС, помогу немного.
Fougerite - Rust Server OpenSource API TerraDev - Terraria OpenSource Hack
|
|
| |