Середовище для програмування 1
Cередовище для програмування 2
Python проти хробака Морріса.
Безпечний цифровий простір
Урок у Meet о 12.55 за посиланням
Вітаю! Сьогодні вивчаємо створення створення програм, які б не перевантажували пам'ять комп'ютера
Крок 1: Python проти хробака Морріса
Переповнення буфера, яке вважається однією з найбільш стійких вразливостей у сфері програмного забезпечення, є серйозною загрозою безпеці систем і часто використовується зловмисниками для здійснення атак. Воно виникає, коли дані записуються за межі буфера фіксованої довжини, що може призвести до пошкодження даних, виконання шкідливого коду або збою програми.
Крок 2: Приклад
Хоча Python дає змогу створювати масиви та керувати ними різними способами, при використанні масиву попередньо визначеного розміру програма може видавати IndexError, щоб уникнути переповнення буфера:
У цьому коді помилка IndexError може виникати або не виникати залежно від кількості введених елементів:
Крок 3: Завдання
Проведіть тестування обох прикладів.
Перевірте питання зі списку безпеки коду:
- Чи вдалося змінити Приклад 1, щоб він не видавав помилку?
- Виправте помилку у Приклад 2 (на 12 балів)
___________________________________________
Уроки 63, 64
07.05.2025
Словники та списки.
Криптографічні бібліотеки Python
Урок у Meet о 12.55 за посиланням
Вітаю! Сьогодні працюємо із символьними даними
Крок 1: Словники та списки
Для роботи з наборами даних Python надає такі вбудовані типи: списки, кортежі, множини та словники.
👉Списки
Список є типом даних, який зберігає набір або послідовність елементів.
👉Словники
Словник є типом даних, який базується на відображенні пар типу (ключ: значення).
Приклад словника:
Крок 2: Шифр Атбаш (зворотній шифр) з використанням списку
🔑 Розшифруйте повідомлення XSVXPBLFIKZHHDLIW та надішліть відповідь.
Крок 3: Криптографічна бібліотека
Бібліотека cryptography містить криптографічні алгоритми, такі як симетричні шифри, дайджести повідомлень і функції виведення ключів.
Симетрична криптографія
Щоб зашифрувати щось за алгоритмом симетричного шифрування, достатньо імпортувати бібліотеку та викликати метод генерації ключа.
Повідомлення буде зашифровано методом encrypt:
Для розшифровки повідомлення можна використовувати метод decrypt:
Крок 4: Завдання
на 8 балів - виконай завдання із Крок 2
на 12 балів 👇
▶️ Виконайте завдання:
- Перевірте роботу програми.
- Додайте коментарі до кожного рядка з поясненням, що саме виконується.
- Знайдіть, які ще методи є в бібліотеці cryptography.
- Попрацюйте з запитами до нейронної мережі щодо інших методів та протестуйте запропоновані коди.
Уроки 61, 62
30.04.2025
Рядки. Кодування текстової інформації
АСИНХРОННО
Вітаю! Сьогодні працюємо із символьними даними
Крок 1: Рядки
Рядки — це об’єкти, що складаються з послідовності символьних даних. Рядок можна вводити або ініціалізувати (присвоїти значення):
Що можна робити із рядковими змінними?
Є багато методів, які дають змогу робити з рядками всі можливі операції: копіювання, поєднання, пошук, зміну регістра, перевірку на тип даних тощо.
Крок 2: Приклади використання методів роботи з рядками
3. reversed()
Функція reversed() просто перевертає рядок.
Крок 3: Кодування текстової інформації
У версії мови Python усі рядки є послідовностями символів Кожному символу відповідає одне число, і кожному числу відповідає один символ.
Python не підтримує символьний тип, символ розглядається як рядок з довжиною 1. Усі символи в рядку індексовані з 0. Доступ до символів здійснюється за допомогою індексів.
Для визначення символу і його коду можна використовувати функції:
ord — код символу;
chr — символ по коду.
Крок 4: Завдання
Напишіть програму, яка розшифровує повідомлення: "CRYPTOGRAPHY"
def decrypt_caesar_cipher(text, shift=1):
decrypted_text = ""
for char in text:
if char.isalpha():
ascii_offset = ord('a') if char.islower() else ord('A')
decrypted_text += chr((ord(char) - ascii_offset - shift) % 26 + ascii_offset)
else:
decrypted_text += char
return decrypted_text
encrypted_word = "CRYPTOGRAPHY"
decrypted_word = decrypt_caesar_cipher(encrypted_word, shift=1)
print(f"The decrypted word is: {decrypted_word}")
8 балів - просто протестувати код
10 балів - замінити "CRYPTOGRAPHY" на іше слово
12 балів - змінити програму так, щоб слово для кодування вводив користувач
_______________________
Уроки 59, 60
23.04.2025
Умови. Цикли
Урок у Meet о 12.55 за посиланням
Вітаю! Сьогодні пригадуємо алгоритми опису умов та циклів у Python, також застосовуємо їх для створення програм з кібербезпеки
Крок 1: Умови
Часто у програмуванні виникає ситуація, коли за певних обставин необхідно виконати одні дії, а за інших обставин — інші. У такому випадку використовується умовний оператор.
Умови можуть бути короткої, повної або складеної форми.
Для побудови складніших умовних конструкцій використовуються поєднання умов та логічних операцій.
Python дуже вибагливий до відступів і пробілів, бо саме так він об’єднує команди у групи (блоки).
В умовних конструкціях, порівнюючи, використовують оператор «==», а не «=».
Крок 2: Цикли
Для повторення команд і блоків команд використовують цикли. Це не просто робить код коротким й структурованим, але й дає змогу запрограмувати процеси, що повторюються за певних умов або певну кількість разів.
Скриншот роботи програми надішли на електронну скриньку teacheritschool1@gmail.com
_______________________________________________________
Уроки 57, 58
16.04.2025
Мови програмування для кібербезпеки.
Змінні
Урок у Meet о 12.55 за посиланням
Вітаю! Сьогодні починаємо вивчення третьої теми "Програмування для кібербезпеки". У фільмах про хакерів можна побачити сцени, де кібергеній вводить щось на чужому комп’ютері, а тоді в один момент усі проблеми вирішені! Пароль підібрано, сайт зламано, гроші прямо через принтер з банку падають у руки. При цьому хакеру десь років 14 і він все вивчимо сам, бо в нього хороший інтернет.
- З якими даними працює програма (що на вході)?
- Що має бути на виході програми (вихідні дані)?
- Які є обмеження по швидкості виконання програми та обчислювальним ресурсам?
- Як це зробити, враховуючи дані обмеження?
«Забули пароль?»
У цьому прикладі ми перевіряємо, чи збігаються два введені паролі. Опісля повідомляємо результат користувачу. У коді описана ситуація, коли паролі мають однакове значення. Допишіть варіант виконання, коли вони не будуть однаковими.
Немає коментарів:
Дописати коментар