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

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

1. replit

2. programiz

Уроки 61, 62

30.04, 01.05.2024

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

Урок 30.04.2024 о 12.55 за посиланням

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

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

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

Крок 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, 24.04.2024

Умови. Цикли

Урок 23.04.2024 о 12.55 за посиланням

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

Крок 1: Умови

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

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


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

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

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

Крок 2: Цикли

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

Крок 3: Завдання
Змушуємо користувача вводити пароль, доки він не збігається з еталонним:

pasw_et = "@__Ab1"
pasw = input("Введіть пароль")
while pasw_et != pasw:
print("Паролі не збігаються. Введіть ще раз")
pasw = input("Введіть пароль")
print("Ок")


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

_______________________________________________________

Уроки 57, 58

16, 17.04.2024

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

Змінні

Урок 16.04.2024 о 12.55 за посиланням

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

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

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

    • Python;
    • Ruby;
    • C++;
    • JavaScript.
    Крок 2: Python і кібербезпека 
    Python є надзвичайно корисною мовою програмування для професіоналів з кібербезпеки, оскільки ця мова може виконувати безліч функцій, зокрема аналіз шкідливих програм, сканування чи тестування на проникнення. Саме через широке використання та найкоротшу криву навчання Python часто рекомендують як першу мову, яку повинні вивчати не знайомі з кібербезпекою люди.

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

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

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

    Крок 4: Завдання

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

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

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

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

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