Захист програмного забезпечення - напевно, головна проблема, з якою стикається кожен розробник. Найбільш простим способом захисту є використання ключів, які генеруються за певним принципом. Написання найпростішого генератора ключів є класичною задачею для початківців програмістів на C, т.к. дозволяє підкреслити аспекти роботи з символами.
Інструкція
Наведений далі генератор ключів є, по суті, шифратором. Програма вимагатиме від користувача ввести ім'я та прізвище, потім переведе кожен введений символ в числовий код і перетворює його за певним законом. Користувачеві на екран буде виведено ключ, що складається з такої ж кількості символів, що і прізвище. Мінус даного алгоритму в тому, що стандартизоване число символів в ключі можна отримати тільки при стандартизованих вхідних даних (ip адреса, значення з реєстру Windows).
Запитайте прізвище, ім'я та по батькові користувача. При цьому, щоб зробити вихідний ключ зручніше, використовуватися буде лише прізвище (введений код буде лічений до першого пробілу, решта піде в буфер, який при необхідності потрібно буде очистити). Дані будуть записані в масив char A [30]. При цьому введіть додатковий лічильник по i, щоб запам'ятати, скільки символів було введено.
printf ("Введіть Прізвище та ініціали. [Васильєв А.І.] n");
while (A [i-1]! = '')
{Scanf ("% c", A [i]) - i ++ -}
printf ("Введіть Прізвище та ініціали. [Васильєв А.І.] n");
while (A [i-1]! = '')
{Scanf ("% c", A [i]) - i ++ -}
Перетворіть прізвище. Незважаючи на те, що масив має формат char, ви можете проводити з ним будь-які математичні операції, тому кожен символ в C має свій числовий код. Тому, створіть цикл від нуля до збереженого кількості символів i. У тілі циклу запишіть перетворення для елемента A [j], після чого виведіть його на екран.
for (int j = 0- j < i-1- j++)
{A [j] = A [j] +8+ (j * 3) -
printf ("% d", A [j]) -}
Це і буде генератор унікального користувальницького ключа, що складається з чисел.
for (int j = 0- j < i-1- j++)
{A [j] = A [j] +8+ (j * 3) -
printf ("% d", A [j]) -}
Це і буде генератор унікального користувальницького ключа, що складається з чисел.
Перевірка валідності буде здійснюватися порівнянням отриманого і даного ключів. Для авторизації користувач вводить своє прізвище та виданий вашим генератором код. Всередині програми встановлено аналогічний генератор, який перетворює прізвище по тому ж закону, а потім - посимвольно порівнює введені значення з тим, що повинно було вийти.