Мови програмування для кібербезпеки

Середовище для програмування

Уроки 61, 62

28.04.2026

Рядки. Кодування текстової інформації


Вітаю! Сьогодні працюємо із символьними даними

Крок 1: Рядки

Рядки — це об’єкти, що складаються з послідовності символьних даних. Рядок можна вводити або ініціалізувати (присвоїти значення):

s1 = input()
s2 = ‘Просто присвоїли’
s3 = "I можна в подвійних лапках"

 

Що можна робити із рядковими змінними?

Є багато методів, які дають змогу робити з рядками всі можливі операції: копіювання, поєднання, пошук, зміну регістра, перевірку на тип даних тощо.

Крок 2: Приклади використання методів роботи з рядками

1. len()
Функція len() повертає довжину рядка, тобто визначає кількість символів, що містить рядок, включно із пропусками:

# Довжина рядка
s = input("Введіть рядок: ")
print("В рядку «", s, "» знаходиться ", len(s), "символів")

2. in
Оператор приналежності in перевіряє, чи входить деякий підрядок у вказану строку. Цей оператор повертає значення True або False в залежності від результату.

# Пошук підряшка
a = input("Введіть код картки, який потрібно знайти у великому тексті")
b = "Номер картки 444925101000999"
if a in b:
        print(a)
else:
        print("Не знайдено")

3. reversed()
Функція reversed() просто перевертає рядок.

# Рядок в зворотному порядку

for elem in reversed("password"):
            print(elem)

Приклад:

print("--- Професійний Дешифратор Повідомлень ---")

user_input = input("Введіть зашифровані коди (через дефіс, наприклад 72-105): ")

if not user_input:

    print("Помилка: рядок порожній!")

else:

    try:

    

        codes_list = user_input.split("-")

        

        decoded_message = ""


        for code in codes_list:

            clean_code = code.strip()

           

            decoded_message += chr(int(clean_code))


        print("\n[РЕЗУЛЬТАТ РОЗШИФРУВАННЯ]")

        print(f"Повідомлення: {decoded_message}")

        

    except ValueError:

        print("Помилка: переконайтеся, що ви вводите лише числа, розділені дефісом.")


print(f"Розшифроване повідомлення: {decoded_message}")

Що тут закодовано:
72-97-99-107-32-116-104-101-32-112-108-97-110-101-116


80-121-116-104-111-110-32-105-115-32-115-97-102-101

Створи власний пароль і обміняйся повідомленнями з однокласниками:

for i in range(65, 91):  # Латинські літери від A до Z

    print(f"Число {i} відповідає символу {chr(i)}")

Крок 3: Кодування текстової інформації

У версії мови Python усі рядки є послідовностями символів  Кожному символу відповідає одне число, і кожному числу відповідає один символ.

Python не підтримує символьний тип, символ розглядається як рядок з довжиною 1. Усі символи в рядку індексовані з 0. Доступ до символів здійснюється за допомогою індексів.


Для визначення символу і його коду можна використовувати функції:

ord — код символу;
chr
 — символ по коду.

#Приклад 1
#Літери та їхні коди:

lit = 'A'
print(ord(lit))
next = ord(lit) + 1
print(chr(next))
#Приклад 2
#Виведення англійських літер:

for i in range(65, 92):
    print (i, chr(i))
#Приклад 3
#Виведення кодів символів тексту:

s = "PYTHON"
for i in range(len(s)):
     print(ord(s[i]), end="")

Приклад:

char = input("Введіть одну літеру для тесту: ")

secret_code = ord(char) + 1

secret_char = chr(secret_code)

print(f"Оригінал: {char} -> Код: {ord(char)}")

print(f"Зашифровано: {secret_char} -> Код: {secret_code}")

Крок 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}")

ПРАКТИЧНА РОБОТА


______________________________________________________

Уроки 59, 60

21.04.2026

Умови. Цикли

Вітаю! Сьогодні пригадуємо алгоритми опису умов та циклів у Python, також застосовуємо їх для створення програм з кібербезпеки

Крок 1: Умови

Часто у програмуванні виникає ситуація, коли за певних обставин необхідно виконати одні дії, а за інших обставин — інші. У такому випадку використовується умовний оператор.

Умови можуть бути короткої, повної або складеної форми.


Для побудови складніших умовних конструкцій використовуються поєднання умов та логічних операцій.

Python дуже вибагливий до відступів і пробілів, бо саме так він об’єднує команди у групи (блоки). 

В умовних конструкціях, порівнюючи, використовують оператор «==», а не «=». 

Крок 2: Цикли

Для повторення команд і блоків команд використовують цикли. Це не просто робить код коротким й структурованим, але й дає змогу запрограмувати процеси, що повторюються за певних умов або певну кількість разів.

Крок 3: Завдання
Змушуємо користувача вводити пароль, доки він не збігається з еталонним:
pasw_et = "@__Ab1"
pasw = input("Введіть пароль")
while pasw_et != pasw:
    print("Паролі не збігаються. Введіть ще раз")
    pasw = input("Введіть пароль")
print("Ок")

на 8 балів - запусти програму і зроби скриншот виконання
на 12 балів - ускладни 1 рядок, щоб користувач вводив пароль самостійно та у 3 рядоку встанови кількість спроб

Скриншот роботи програми надішли на електронну скриньку teacheritschool1@gmail.com

____________________________________________

Уроки 57, 58

14.04.2026

Мови програмування для кібербезпеки. 

Змінні

Вітаю! Сьогодні починаємо вивчення третьої теми "Програмування для кібербезпеки". У фільмах про хакерів можна побачити сцени, де кібергеній вводить щось на чужому комп’ютері, а тоді в один момент усі проблеми вирішені! Пароль підібрано, сайт зламано, гроші прямо через принтер з банку падають у руки. При цьому хакеру десь років 14 і він все вивчимо сам, бо в нього хороший інтернет.

То в фільмах.
А що в реальності?
Навчання кібербезпеки потребує багато часу, бажання і терпіння. Й окрім хорошої математики та логіки, звичайно ж потребує і другої грамотності — вміння кодувати.

Крок 1: Які мови програмування використовують у кібербезпеці?
Для професіонала з кібербезпеки розуміння мов кодування є важливим, оскільки лише так можна «розмовляти» мовою тих, від кого потрібен захист. Розуміння того, як саме різні мови програмування використовуються в кібербезпеці, допоможе визначити методи зловмисника та зменшити потенційну шкоду. Крім того, можна створювати інструменти, які будуть захищати системи та мережі від кібератак. 
Найпопулярніші мови програмування, які використовуються в кібербезпеці:
Крок 2: Python і кібербезпека 
Python є надзвичайно корисною мовою програмування для професіоналів з кібербезпеки, оскільки ця мова може виконувати безліч функцій, зокрема аналіз шкідливих програм, сканування чи тестування на проникнення. Саме через широке використання та найкоротшу криву навчання Python часто рекомендують як першу мову, яку повинні вивчати не знайомі з кібербезпекою люди.

Python став добре відомим і широко використовуваним завдяки великій кількості бібліотек, тобто фахівцям з кібербезпеки наразі не потрібно винаходити велосипед зі звичайними завданнями, і в більшості випадків вони можуть швидко знайти вже доступний інструмент аналізу загроз кібербезпеки або провести тестування на проникнення.
Крок 3: Змінні
У задачі будь-якої складності ми оцінюємо:
  • З якими даними працює програма (що на вході)?
  • Що має бути на виході програми (вихідні дані)?
  • Які є обмеження по швидкості виконання програми та обчислювальним ресурсам?
  • Як це зробити, враховуючи дані обмеження?

Дані зберігаються у змінних. Ми одразу домовимося давати змінним такі назви латиницею, щоб розуміти, за яку інформацію вони відповідають. Змінні можна ініціалізувати, присвоївши їм значення, при цьому змінні отримують певний тип (наприклад, число або рядок символів).

Знайдіть у прикладах, яка змінна є числом, а яка — рядком.

Крок 4: Завдання+ практична робота

«Забули пароль?»

У цьому прикладі ми перевіряємо, чи збігаються два введені паролі. Опісля повідомляємо результат користувачу. У коді описана ситуація, коли паролі мають однакове значення. Допишіть варіант виконання, коли вони не будуть однаковими.

pasw_new1= input()
pasw_new2= input()
if (pasw_new1 == pasw_new2):
print("Пароль успішно підтверджено")
Скриншот роботи програми надішли на електронну скриньку teacheritschool1@gmail.com

Немає коментарів:

Дописати коментар