Skip to content

Project added#1

Open
Annarrchy wants to merge 6 commits into
mainfrom
Project
Open

Project added#1
Annarrchy wants to merge 6 commits into
mainfrom
Project

Conversation

@Annarrchy

Copy link
Copy Markdown
Owner

No description provided.

@Annarrchy Annarrchy requested a review from salamantos April 7, 2022 18:08

@salamantos salamantos left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

все супер, за подробное описание отдельный лайк)

Comment thread README.md
3. Находим букву с наибольшей частотой (например "г")
4. Априорно считаем эту букву буквой "о" (или "e", в зависимости от языка)
5. Зная местоположения в алфавите букв "о" и "г" определяем сдвиг
6. Расшифровываем текст, используя полученный ключ

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

отличное описание)

Comment thread encryption.py Outdated
alphabet_EU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
alphabet_RU = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'

def Caesar_cipher(input_file):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

функции должны быть в snake_case

Comment thread encryption.py Outdated
index = i + 1
text_ind = p
if lang == "RU":
shift = abs(16 - index)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

по коду сложно понять, что 16, 5 - это индексы определенных букв в алфавите, возможно лучше ord('о') использовать

Comment thread encryption.py Outdated
outf.write(new_byte)
byte_in = inf.read(1)

def Caesar_analysis(input_file):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

кажется не очень надежным смотреть только на 1 символ и считать его самым часто повторяющимся, потому что от текста к тексту это может быть не о

лучше смотреть на частоту всех символов: посчитать частоту всех символов в языке, затем в исходном тексте найти для каждого символа наиболее близкое предсказание по частоте, после этого посмотреть на все полученные сдвиги и взять 1 самый частый

Comment thread encryption.py Outdated
@click.command()
@click.option("--cipher", type=str,
help="Use one of: Caesar_cipher, Caesar_decipher, Vigenere_cipher, Vigenere_decipher, Vernam_cipher, Vernam_decipher, Caesar_analysis")
@click.option("--input_file", type=click.Path(exists=True, file_okay=True), required=True,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

возможно удобнее было бы дополнительно поддержать короткую версию вроде -i, чтобы не писать длинные команды)

Comment thread encryption.py Outdated
@@ -0,0 +1,286 @@
#!/usr/bin/env python3

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

давай разобьем этот большой файл на несколько поменьше: например каждый шифр можно в свой файл положить

так должно стать легче читать код и понимать структуру проекта)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants