Найти - Пользователи
Полная версия: HELP! шифр Гронсфельда
Начало » Центр помощи » HELP! шифр Гронсфельда
1
Kristofer1373
Написана программка по шифру Гронсфельда, каждую строку необходимо описать и пояснить, что в ней происходит и используется. Особенно важны два блока: шифрование и дешифрование текста. Прошу помощи!!!

#!/usr/bin/env python
#-*- coding: utf8 -*-
from Tkinter import *
from tkFileDialog import *
from random import randint


class App(object):
def __init__(self):
self.key = [3, 1, 4, 1, 5]
self.root = Tk()
self.btn_open = Button(self.root, command=self.open_file, text = 'Open')
self.btn_open.pack()
self.txt = Text(self.root)
self.txt.pack()
self.btn_enc = Button(self.root, command=self.encode, text = 'Encode')
self.btn_enc.pack()
self.btn_dec = Button(self.root, command=self.decode, text = 'Decode')
self.btn_dec.pack()

def open_file(self):
self.txt.delete('1.0',END)
self.txt.insert(INSERT, askopenfile().read())

def encode(self):
indata=self.txt.get('1.0',END)
outdata = ''
if len(indata)>0 and indata[-1]=='\n':
indata = indata[:-1]

i = 0
for sym in indata:
if sym>='A' and sym<='Z':
outdata+=chr(((ord(sym)-ord('A'))+self.key[i])%(ord('Z')-ord('A')+1)+ord('A'))
elif sym>='a' and sym<='z':
outdata+=chr(((ord(sym)-ord('a'))+self.key[i])%(ord('z')-ord('a')+1)+ord('a'))
else:
outdata += sym
i += 1
if i == len(self.key):
i = 0
self.txt.delete('1.0',END)
self.txt.insert(INSERT, outdata)

def decode(self):
indata=self.txt.get('1.0',END)
outdata = ''
if len(indata)>0 and indata[-1]=='\n':
indata = indata[:-1]

i = 0
for sym in indata:
if sym>='A' and sym<='Z':
outdata+=chr(((ord(sym)-ord('A'))-self.key[i])%(ord('Z')-ord('A')+1)+ord('A'))
elif sym>='a' and sym<='z':
outdata+=chr(((ord(sym)-ord('a'))-self.key[i])%(ord('z')-ord('a')+1)+ord('a'))
else:
outdata += sym
i += 1
if i == len(self.key):
i = 0
self.txt.delete('1.0',END)
self.txt.insert(INSERT, outdata)

def on_execute(self):
self.root.mainloop()

if __name__ == '__main__':
app = App()
app.on_execute()
terabayt
ну для начала вставьте код нормально, на панели инструментов, где вы вводите текст, слева от смайлика наведите на листочек и выберите Python и потом вставляйте код!
Kristofer1373
terabayt
ну для начала вставьте код нормально, на панели инструментов, где вы вводите текст, слева от смайлика наведите на листочек и выберите Python и потом вставляйте код!
сделано
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB