Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_rab8_D.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
422 Кб
Скачать
☆
    1. Шифрування бази відповідей

Гра повністю написана, але, щоб правильно відповісти на питання, не обов'язково все знати. Що може перешкодити користувачеві відкрити файл lucky.ini і прочитати там правильну відповідь. Звідси висновок: базу даних відповідей необхідно зашифрувати! Ми не будемо використовувати складних шифраторів, а застосуємо просту операцію хоr. Отже, додамо на початку обробника події OnCreate форми Forml наступний код:

procedure TForml.FormCreate (Sender: TObject);

label ran;

begin

// Зіставимо змінну fl і повний шлях до файлу lucky.ini

AssignFile (fI, ss);

// Змінна f2 буде відповідати за файл C: \ xor.ini

AssignFile (f2, 'C: \ xor.ini');

Reset (fl); // відкриваємо файл на читання

Rewrite (f2); // відкриваємо файл на запис

while not eof (fl) do // поки не досягнуть кінець файла

begin

Read (fl, cop); // читаємо lucky.ini

cop: = chr (ord (сор) хог 123); // Дешифруючи дані

Write (f2, cop); // записуємо їх в xor.ini

end;

CloseFile (fl); CloseFile (f2); // Закриваємо файли

Randomize; // активізуємо генератор випадкових чисел

    1. Тепер необхідно внести деякі зміни до розділу оголошення змінних.

var

fl, f2: file of char;

cop: char;

    1. У процедурі обробки події OnCreate, перевизначте змінну ss:

ss: = 'c: \ xor.ini'; // розміщення бази даних

..І нарешті, зашіфруйте файл lucky.ini. Для цього на швидку руку створіть програму, скопіюйте з нашої гри фрагмент коду, який дешифрує базу питань. Так як хоr - абсолютно оборотна функція (тому й ненадійна) цим же способом можна зашифрувати і базу. Приклад зашифрованою бази питань зображений на рис. 2.11.

    1. В ідкомпілюйте і запустіть програму.

  1. Файл Close All.

  2. Оформіть звіт по лабораторній роботі: тема і мета роботи; послідовність виконання роботи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]