Проект "Шифрування" (EasyGUI)

Існує кілька простих способів шифрування, які базуються на заміні одного символу іншим за певним правилом. Найвідоміший такий шифр - шифр Цезаря. Він полягає у заміні символу на третій за ним у алфавіті.


Так, якщо у тексті є слово Цезар, воно буде замінено на Щикгу.

Мовою Python цей алгоритм записується таким програмним кодом:

line="Початковий текст"
shyfr=""
for bukva in line:
    shyfr=shyfr+chr(ord(bukva)+3)
print(shyfr)

У змінній line міститься початковий текст, а у shyfr - зашифрований. Функція ord визначає номер літери у таблиці кодування ASCII, а функція chr повертає символ з номером, що на 3 більший.

Очевидно, що для розшифрування тексту потрібно виконувати зворотню операцію зміщення на 3 символи у протилежному напрямку (не додавати 3, а віднімати).


За таким же принципом можна виконувати шифрування зі зміщенням на довільну кількість символів, тобто не на фіксоване число 3, а на n.


Серед компонентів easygui є можливість відкрити вибраний файл:

file=easygui.fileopenbox()


У змінну файл буде записано повний шлях до вибраного файлу.

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

text=open(file)

line=text.readline()


Наступний текстовий блок виводить на екран вміст змінної line

show=easygui.textbox(msg='Ваш текст', text=line, codebox=0)



Завдання. Створити проект зашифрування повідомлення з файлу text1.txt шифром Цезаря.

London is the capital city of England and the United Kingdom, the largest metropolitan area of the country and among the most populated in Europe. Once London was a small Roman town of the north bank of the Thames. Slowly it grew into the capital of the United Kingdom, its economic, political and cultural center. 

Завдання. Створити проект розшифрування повідомлення з файлу shyfr1.txt, що зашифрований шифром Цезаря.

Zdvklqjwrq#lv#wkh#fdslwdo#ri#wkh#Xqlwhg#Vwdwhv#ri#Dphulfd1#Wkh#flw|#lv#vlwxdwhg#rq#wkh#Srwrpdf#Ulyhu#lq#wkh#Glvwulfw#ri#Froxpeld/#lq#d#orfdwlrq#fkrvhq#e|#Jhrujh#Zdvklqjwrq1#

Завдання. Зашифрувати повідомлення з файлу text2.txt шифром із довільним зміщенням.

New York is the largest city in USA. It is an economic, financial, scientific and cultural center. New York is a city of famous skyscrapers. The highest buildings are the Empire State Building and the United Nations building.

Завдання. Розшифрувати текст повідомлення з файлу shyfr2.txt, що зашифрований шифром із невідомим зміщенням. 

\mjs%Hmfwqjx%Gfggflj1%f%uwtkjxxtw%tk%Rfymjrfynhx%fy%Hfrgwnilj%Zsn{jwxny~1%ns{jsyji%ymj%knwxy%hfqhzqfynsl%rfhmnsj%ns%6=67%mj%htzqis,y%mf{j%nrflnsji%ymj%xnyzfynts%|j%knsi%tzwxjq{jx%ns%ytif~3%Sjfwq~%j{jw~ymnsl%|j%it%ns%ymj%|twqi%nx%mjquji1%tw%j{js%htsywtqqji1%g~%htruzyjwx1%ymj%htruqnhfyji%ijxhjifsyx%tk%mnx%xnruqj%rfhmnsj3%Htruzyjwx%fwj%zxji%rtwj%fsi

Завдання. Розшифрувати повідомлення: 

GUVF VF ZL FRPERG ZRFFNTR

Підказка

Обмін шифровками: https://padlet.com/oksanapas/shyfr
Остання зміна: середа 3 травня 2017 9:45