0 / 0 / 1
Регистрация: 28.09.2016
Сообщений: 31
1

Шифр Цезаря, шифрование акбаш, шифрование афины. Найдите ошибки

28.03.2018, 13:41. Показов 3954. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, кто может помочь разобраться в этих трёх кодах, нужно найти ошибки, если они есть.
Нужно к сегодняшнему вечеру, выручайте.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#цезарь
message = "Проверка~"
 
# ключ сдвиг
key = 13
 
# что нужно сдлеать
mode = 'encrypt' # 'encrypt'  'decrypt'
 
 
LETTERS = ' !#$%&+,.0123456789:;<=>?@АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ^_`абвгдеёжзийклмнопрстуфхцчшщъыьэюя{|}~'
 
# хранится сообщение
translated = ''
 
# начинаем шифровать, ну или наоборот
for symbol in message:
    if symbol in LETTERS:
        num = LETTERS.find(symbol)
        if mode == 'encrypt':
            num = num + key
        elif mode == 'decrypt':
            num = num - key
        if num >= len(LETTERS):
            num = num - len(LETTERS)
        elif num < 0:
            num = num + len(LETTERS)
 
 
        translated = translated + LETTERS[num]
 
    else:
        translated = translated + symbol
 
print(translated)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
alfavit = ' ,.!?АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ'
revAlf = 'ЯЮЭЬЫЪЩШЧЦХФУТСРПОНМЛКЙИЗЖЁЕДГВБА?!., '
#alfavit = [' ', ',', '.', '!','?','А','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь','Э','Ю','Я']
#revAlfavit = ['?', '!', '.', ',',' ','Я','Ю','Э','Ь','Ы','Ъ','Щ','Ш','Ч','Ц','Х','Ф','У','Т','С','Р','П','О','Н','М','Л','К','Й','И','З','Ж','Ё','Е','Д','Г','В','Б','А']
 
A= input("Введите текст: ")
#A = 'КАРЛ У КЛАРЫ УКРАК КОРАЛЛЫ, А !!!!! КЛАРА НЕТ!,?????'
#print(A)
B = []
V = []
for i in range(len(A)):
    for j in range (len(alfavit)):
        if A[i] == alfavit[j]:
            B.append(revAlf[j])
 
print(''.join(B))
 
 
for i in range (len(B)):
    for j in range (len(alfavit)):
        if B[i]== revAlf[j]:
            V.append(alfavit[j])
print (''.join(V))
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# афина шифр
import sys, pyperclip, cryptomath, random
SYMBOLS = """ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"""
 
 
def main():
    myMessage = "This is a secret message form my mind!" #наше сообщение
    myKey = 2525
    myMode = 'encrypt' # 'encrypt' 'decrypt'
 
    if myMode == 'encrypt':
        translated = encryptMessage(myKey, myMessage)
    elif myMode == 'decrypt':
        translated = decryptMessage(myKey, myMessage)
    print('Использованный ключ: %s' % (myKey))
    print('%sed текст:' % (myMode.title()))
    print(translated)
    pyperclip.copy(translated)
    print('Ваш %sed текст скопирован в буфер обмена.' % (myMode))
 
 
def getKeyParts(key):
    keyA = key // len(SYMBOLS)
    keyB = key % len(SYMBOLS)
    return (keyA, keyB)
 
 
def checkKeys(keyA, keyB, mode): #проверка ключа
    if keyA == 1 and mode == 'encrypt':
        sys.exit('The affine cipher becomes incredibly weak when key A is set to 1. Choose a different key.')
 
    if keyB == 0 and mode == 'encrypt':
        sys.exit('The affine cipher becomes incredibly weak when key B is set to 0. Choose a different key.')
    if keyA < 0 or keyB < 0 or keyB > len(SYMBOLS) - 1:
        sys.exit('Key A must be greater than 0 and Key B must be between 0 and %s.' % (len(SYMBOLS) - 1))
    if cryptomath.gcd(keyA, len(SYMBOLS)) != 1:
        sys.exit('Key A (%s) and the symbol set size (%s) are not relatively prime. Choose a different key.' % (keyA, len(SYMBOLS)))
 
 
def encryptMessage(key, message):
    keyA, keyB = getKeyParts(key)
    checkKeys(keyA, keyB, 'encrypt')
    ciphertext = ''
    for symbol in message:
        if symbol in SYMBOLS:
            # encrypt this symbol
            symIndex = SYMBOLS.find(symbol)
            ciphertext += SYMBOLS[(symIndex * keyA + keyB) % len(SYMBOLS)]
        else:
            ciphertext += symbol # just append this symbol unencrypted
    return ciphertext
 
 
def decryptMessage(key, message):
    keyA, keyB = getKeyParts(key)
    checkKeys(keyA, keyB, 'decrypt')
    plaintext = ''
    modInverseOfKeyA = cryptomath.findModInverse(keyA, len(SYMBOLS))
 
    for symbol in message:
        if symbol in SYMBOLS:
        # decrypt this symbol
            symIndex = SYMBOLS.find(symbol)
            plaintext += SYMBOLS[(symIndex - keyB) * modInverseOfKeyA % len(SYMBOLS)]
        else:
            plaintext += symbol # just append this symbol undecrypted
    return plaintext
 
 
def getRandomKey():
    while True:
        keyA = random.randint(2, len(SYMBOLS))
        keyB = random.randint(2, len(SYMBOLS))
 
        if cryptomath.gcd(keyA, len(SYMBOLS)) == 1:
            return keyA * len(SYMBOLS) + keyB
 
 
# If affineCipher.py is run (instead of imported as a module) call
 # the main() function.
if __name__ == '__main__':
    main()
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2018, 13:41
Ответы с готовыми решениями:

Шифр Цезаря. Шифрование
z = int(input()) alph = n = input().strip() for length in n: print(alph, end='') ...

Шифрование/дешифрование текста: шифр Цезаря
С помощью метода «Шифра Цезаря» создать алгоритм шифрования и дешифрования сообщения, изначально...

Шифр Цезаря и Шифрование с формированием алфавита замены на Питон без встроенных функций
Необходимо реализовать следующие методы шифрования. 1. Шифр Цезаря 2. Шифрование с формированием...

Шифрование сдвигами (шифр Цезаря)
Необходимо сделать меню, к которому можно обращаться несколько раз. Каждое задание делать в виде...

Шифрование файлов (шифр Цезаря)
Здравствуйте. Программа должна открывать файл с шифром,а расшифровку записывать в пустой файл....

0
28.03.2018, 13:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2018, 13:41
Помогаю со студенческими работами здесь

Шифрование/дешифрование текста: шифр Цезаря
Задание: С помощью метода «Шифра Цезаря» создать алгоритм шифрования и дешифрования сообщения,...

Шифрование/дешифрование текста: шифр Цезаря
Задали дома сделать шифр Цезаря , проблема в том ,что объяснили лишь ,что делать через char и все....

Шифрование и дешифрование текста (шифр Цезаря)
Напишите программу для шифрования и дешифрования текста, используя шифр Цезаря, который является...

Шифрование русского текста (шифр Цезаря)
Нужно зашифровать и расшифровать, введенный на русском языке , текст (я выбрал шифр Цезаря). С...

Шифрование/дешифрование текста: шифр Цезаря
8. Написать программу, которая позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря»...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru