Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 3

Исправить декодирование с шрифтом замены

22.04.2016, 17:03. Показов 2021. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток, питоном занимаюсь недолго около 2-х недель, но решил написать шифр замены с использованием словарей, но никак не получаеться расшифровать, помогите пожалуйста.
Пример прилагаеться:
Сообщение для зашифровки:
Привет всем, тестирую шифр простой замены по словарю, но получаються ошибки, помогите рещить проблему. 16:55 22.04,2016 +2 bladester

При расшифровке получаеться:

Привет 91всем3916391 91тестирую 91шифр 91простой 91замены 91по 91словарю3916391 91но 91п59Эу4ча40(4ься 91оши2ки3916391 91помогите 91рещить 91проблему5573913911W91 913913911416:55 91391391139139115573913911W91573913911к3 9163913913911573913911W913911416 9143913911W913911W913911 91bladester

Программа для зашифровки:
python 3.4.4
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
# coding: utf8
base = open('base1.txt', 'w',  encoding='utf-8')
A1 = {'а': 574, 'б': 242, 'в': 334, 'г': 394, 'д': 324,
    'е': 584, 'ж': 264, 'з': 344, 'и': 284, 'й': 404,
    'к': 414, 'л': 484, 'м': 374, 'н': 564, 'о': 594,
    'п': 504, 'р': 364, 'с': 384, 'т': 494, 'у': 444,
    'ф': 572, 'х': 242, 'ц': 332, 'ч': 392, 'ш': 322, 'щ': 582,
    'ь': 262, 'ы': 342, 'э': 282, 'ю': 402, 'я': 412,
    'А': 482, 'Б': 372, 'В': 562, 'Г': 592, 'Д': 502,
    'Е': 362, 'Ж': 382, 'З': 492, 'И': 442, 'Й': 578, 'К': 248, 'Л': 338, 'М': 398,
    'Н': 328, 'О': 588, 'П': 268, 'Р': 348, 'С': 288,
    'Т': 408, 'У': 418, 'Ф': 488, 'Х': 378, 'Ц': 568, 'Ч': 598, 'Ш': 508, 'Щ': 368,
    'Ь': 388, 'Ы': 498, 'Э': 448, 'Ю': 575, 'Я': 245,
    'a': 335, 'b': 395, 'c': 325, 'd': 585, 'e': 265,
    'f': 345, 'g': 285, 'h': 405, 'i': 415, 'j': 485, 'k': 375, 'l': 565, 'm': 595,
    'n': 505, 'o': 365, 'p': 385, 'q': 495, 'r': 445,
    's': 577, 't': 247, 'u': 337, 'v': 397, 'w': 327, 'x': 587, 'y': 267, 'z': 347,
    'A': 287, 'B': 407, 'C': 417, 'D': 487, 'E': 377,
    'F': 567, 'G': 597, 'H': 507, 'I': 367, 'J': 387, 'K': 497, 'L': 447, 'M': 573,
    'N': 243, 'O': 333, 'P': 393, 'Q': 323, 'R': 583,
    'S': 263, 'T': 343, 'U': 283, 'V': 403, 'W': 413, 'X': 483, 'Y': 373, 'Z': 563,
    ' ': 593, '.': 503, ',': 363, '!': 383, '?': 493,
    '0': 571, '1': 241, '2': 331, '3': 391, '4': 321,
    '5': 581, '6': 261, '7': 341, '8': 281, '9': 401, '+': 411, '-': 481,
    '<': 371, '>': 561, '@': 591, '#': 501, '$': 361,
    '%': 381, '^': 491, '&': 441, '*': 579, '(': 249, ')': 339, '_': 399, '=': 329,
    '~': 589, '`': 269, '"': 349, ':': 289, ';': 409,
    '[': 419, ']': 489, '{': 379, '}': 569}
x = str(input('Введите текст \n'))
for key in sorted (A1.keys()):
    x = x.replace(key, str(A1[key]))
base.write(x)
base.close()
Программа для расшифровки:
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
base = open('base1.txt', 'r',  encoding='utf-8')
workout = open('workout.txt', 'w', encoding='utf-8')
x = str(base.read())
A1 = {
    '574': 'а', '242': 'б', '334': 'в', '394': 'г', '324': 'д',
    '584': 'е', '264': 'ж', '344': 'з', '284': 'и', '404': 'й',
    '414': 'к', '484': 'л', '374': 'м', '564': 'н', '594': 'о',
    '504': 'п', '364': 'р', '384': 'с', '494': 'т', '444': 'у',
    '572': 'ф', '224': 'х', '332': 'ц', '392': 'ч', '322': 'ш',
    '582': 'щ', '419': '[', '489': ']', '379': '{', '569': '}',
    '262': 'ь', '342': 'ы', '282': 'э', '402': 'ю', '412': 'я',
    '482': 'А', '372': 'Б', '562': 'В', '592': 'Г', '502': 'Д',
    '362': 'Е', '382': 'Ж', '492': 'З', '442': 'И', '578': 'Й',
    '248': 'К', '338': 'Л', '398': 'М', '289': ':', '409': ';',
    '328': 'Н', '588': 'О', '268': 'П', '348': 'Р', '288': 'С',
    '408': 'Т', '418': 'У', '488': 'Ф', '378': 'Х', '568': 'Ц',
    '598': 'Ч', '508': 'Ш', '368': 'Щ', '269': '`', '349': '"',
    '388': 'Ь', '498': 'Ы', '448': 'Э', '575': 'Ю', '245': 'Я',
    '335': 'a', '395': 'b', '325': 'c', '585': 'd', '265': 'e',
    '345': 'f', '285': 'g', '405': 'h', '415': 'i', '485': 'j',
    '375': 'k', '565': 'l', '595': 'm', '589': '~', '329': '=',
    '505': 'n', '365': 'o', '385': 'p', '495': 'q', '445': 'r',
    '577': 's', '247': 't', '337': 'u', '397': 'v', '327': 'w',
    '587': 'x', '267': 'y', '347': 'z', '339': ')', '399': '_',
    '287': 'A', '407': 'B', '417': 'C', '487': 'D', '377': 'E',
    '567': 'F', '597': 'G', '507': 'H', '367': 'I', '387': 'J',
    '497': 'K', '447': 'L', '573': 'M', '579': '*', '249': '(',
    '243': 'N', '333': 'O', '393': 'P', '323': 'Q', '583': 'R',
    '263': 'S', '343': 'T', '283': 'U', '403': 'V', '413': 'W',
    '483': 'X', '373': 'Y', '563': 'Z', '491': '^', '441': '&',
    '593': ' ', '503': '.', '363': ',', '383': '!', '493': '?',
    '571': '0', '241': '1', '331': '2', '391': '3', '321': '4',
    '581': '5', '261': '6', '341': '7', '281': '8', '401': '9',
    '411': '+', '481': '-', '381': '%', '501': '#', '361': '$',
    '371': '<', '561': '>', '591': '@',
    }
for key in sorted (A1.keys()):
    x = x.replace(key, str(A1[key]))
workout.write(str(x))
workout.close()
base.close()
Заранее благодарен.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.04.2016, 17:03
Ответы с готовыми решениями:

Создание файлов в папке без замены имеющихся путем замены цифр в их имени по порядку
Всем доброго времени суток! Надо при нажатии кнопку создавать файл &quot;Ins001.txt&quot; в директории &quot;Configs\&quot;, а если такой файл уже...

Вывести файл до замены и после замены.
Нужно что бы было видно файл до замены и после замены. Program fail; uses crt; var f:text; ct: array of string; i,n:integer; ...

Возможно ли, чтобы предложение для замены слова писалось перед словами для замены
Возможно ли, чтобы предложение для замены слова писалось перед словами для замены?program Project1; uses SysUtils,Windows; ...

6
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
22.04.2016, 21:44
мне кажется что проблема в том что у тебя получается строка привет==504364284334584494 и как тут определить что п==504 а р==364? тут либо при кодировке использовать разделитель пробел типа 504 364 284 и т.д. либо при декодировании считывать по три символа из строки
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
22.04.2016, 21:56
шифрование тоже неправильное: когда цифры шифруются часть шифротекста зашифровывается повторно
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
22.04.2016, 22:55
Лучший ответ Сообщение было отмечено bladester как решение

Решение

кодировка
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
base = open('base1.txt', 'w',  encoding='utf-8')
A1 = {'а': 574, 'б': 242, 'в': 334, 'г': 394, 'д': 324,
    'е': 584, 'ж': 264, 'з': 344, 'и': 284, 'й': 404,
    'к': 414, 'л': 484, 'м': 374, 'н': 564, 'о': 594,
    'п': 504, 'р': 364, 'с': 384, 'т': 494, 'у': 444,
    'ф': 572, 'х': 242, 'ц': 332, 'ч': 392, 'ш': 322, 'щ': 582,
    'ь': 262, 'ы': 342, 'э': 282, 'ю': 402, 'я': 412,
    'А': 482, 'Б': 372, 'В': 562, 'Г': 592, 'Д': 502,
    'Е': 362, 'Ж': 382, 'З': 492, 'И': 442, 'Й': 578, 'К': 248, 'Л': 338, 'М': 398,
    'Н': 328, 'О': 588, 'П': 268, 'Р': 348, 'С': 288,
    'Т': 408, 'У': 418, 'Ф': 488, 'Х': 378, 'Ц': 568, 'Ч': 598, 'Ш': 508, 'Щ': 368,
    'Ь': 388, 'Ы': 498, 'Э': 448, 'Ю': 575, 'Я': 245,
    'a': 335, 'b': 395, 'c': 325, 'd': 585, 'e': 265,
    'f': 345, 'g': 285, 'h': 405, 'i': 415, 'j': 485, 'k': 375, 'l': 565, 'm': 595,
    'n': 505, 'o': 365, 'p': 385, 'q': 495, 'r': 445,
    's': 577, 't': 247, 'u': 337, 'v': 397, 'w': 327, 'x': 587, 'y': 267, 'z': 347,
    'A': 287, 'B': 407, 'C': 417, 'D': 487, 'E': 377,
    'F': 567, 'G': 597, 'H': 507, 'I': 367, 'J': 387, 'K': 497, 'L': 447, 'M': 573,
    'N': 243, 'O': 333, 'P': 393, 'Q': 323, 'R': 583,
    'S': 263, 'T': 343, 'U': 283, 'V': 403, 'W': 413, 'X': 483, 'Y': 373, 'Z': 563,
    ' ': 593, '.': 503, ',': 363, '!': 383, '?': 493,
    '0': 571, '1': 241, '2': 331, '3': 391, '4': 321,
    '5': 581, '6': 261, '7': 341, '8': 281, '9': 401, '+': 411, '-': 481,
    '<': 371, '>': 561, '@': 591, '#': 501, '$': 361,
    '%': 381, '^': 491, '&': 441, '*': 579, '(': 249, ')': 339, '_': 399, '=': 329,
    '~': 589, '`': 269, '"': 349, ':': 289, ';': 409,
    '[': 419, ']': 489, '{': 379, '}': 569}
x = str(input('Введите текст \n'))
for key in x:
    x=x.replace(key,str(A1[key]))
base.write(x)
base.close()
декодирование
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
base = open('base1.txt', 'r',  encoding='utf-8')
x = base.read()
A1 = {
    '574': 'а', '242': 'б', '334': 'в', '394': 'г', '324': 'д',
    '584': 'е', '264': 'ж', '344': 'з', '284': 'и', '404': 'й',
    '414': 'к', '484': 'л', '374': 'м', '564': 'н', '594': 'о',
    '504': 'п', '364': 'р', '384': 'с', '494': 'т', '444': 'у',
    '572': 'ф', '224': 'х', '332': 'ц', '392': 'ч', '322': 'ш',
    '582': 'щ', '419': '[', '489': ']', '379': '{', '569': '}',
    '262': 'ь', '342': 'ы', '282': 'э', '402': 'ю', '412': 'я',
    '482': 'А', '372': 'Б', '562': 'В', '592': 'Г', '502': 'Д',
    '362': 'Е', '382': 'Ж', '492': 'З', '442': 'И', '578': 'Й',
    '248': 'К', '338': 'Л', '398': 'М', '289': ':', '409': ';',
    '328': 'Н', '588': 'О', '268': 'П', '348': 'Р', '288': 'С',
    '408': 'Т', '418': 'У', '488': 'Ф', '378': 'Х', '568': 'Ц',
    '598': 'Ч', '508': 'Ш', '368': 'Щ', '269': '`', '349': '"',
    '388': 'Ь', '498': 'Ы', '448': 'Э', '575': 'Ю', '245': 'Я',
    '335': 'a', '395': 'b', '325': 'c', '585': 'd', '265': 'e',
    '345': 'f', '285': 'g', '405': 'h', '415': 'i', '485': 'j',
    '375': 'k', '565': 'l', '595': 'm', '589': '~', '329': '=',
    '505': 'n', '365': 'o', '385': 'p', '495': 'q', '445': 'r',
    '577': 's', '247': 't', '337': 'u', '397': 'v', '327': 'w',
    '587': 'x', '267': 'y', '347': 'z', '339': ')', '399': '_',
    '287': 'A', '407': 'B', '417': 'C', '487': 'D', '377': 'E',
    '567': 'F', '597': 'G', '507': 'H', '367': 'I', '387': 'J',
    '497': 'K', '447': 'L', '573': 'M', '579': '*', '249': '(',
    '243': 'N', '333': 'O', '393': 'P', '323': 'Q', '583': 'R',
    '263': 'S', '343': 'T', '283': 'U', '403': 'V', '413': 'W',
    '483': 'X', '373': 'Y', '563': 'Z', '491': '^', '441': '&',
    '593': ' ', '503': '.', '363': ',', '383': '!', '493': '?',
    '571': '0', '241': '1', '331': '2', '391': '3', '321': '4',
    '581': '5', '261': '6', '341': '7', '281': '8', '401': '9',
    '411': '+', '481': '-', '381': '%', '501': '#', '361': '$',
    '371': '<', '561': '>', '591': '@',
    }
 
workout = open('workout.txt', 'w', encoding='utf-8')
x=''.join([A1[x[i:i+3]] for i in range(0,len(x),3)])
workout.write(x)
workout.close()
base.close()
1
0 / 0 / 0
Регистрация: 22.04.2016
Сообщений: 3
23.04.2016, 18:50  [ТС]
Спасибо большое)
0
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 10
11.02.2024, 19:15
Добрый день. Пытаюсь по аналогии декодировать многострочный документ типа:
8E82809D98998898
8E82809D98998898

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
base = open('test.txt', 'r',  encoding='utf-8')
x = base.read()
A1 = {
    '8C': 'a', '8F': 'b', '8E': 'c', '89': 'd', '88': 'e',
    '8B': 'f', '8A': 'g', '85': 'h', '84': 'i', '87': 'j',
    '86': 'k', '81': 'l', '80': 'm', '8D': '~', '83': 'n', 
    '82': 'o', '9D': 'p', '9C': 'q', '9F': 'r', 'CE': '#',
    '9E': 's', '99': 't', '98': 'u', '9B': 'v', '9A': 'w',
    '95': 'x', '94': 'y', '97': 'z', 'C4': ')', 'B2': '_',
    'AC': 'A', 'AF': 'B', 'AE': 'C', 'A9': 'D', 'A8': 'E',
    'AB': 'F', 'AA': 'G', 'A5': 'H', 'A4': 'I', 'A7': 'J',
    'A6': 'K', 'A1': 'L', 'A0': 'M', 'C7': '*', 'C5': '(',
    'A3': 'N', 'A2': 'O', 'BD': 'P', 'BC': 'Q', 'BF': 'R',
    'BE': 'S', 'B9': 'T', 'B8': 'U', 'BB': 'V', 'BA': 'W',
    'B5': 'X', 'B4': 'Y', 'B7': 'Z', 'B3': '^', 'AD': '@',
    'CD': ' ', 'C3': '.', 'C1': ',', 'CC': '!', 'C9': '$',
    'C6': '+', 'C0': '-', 'C8': '%',
    }
 
workout = open('workout.txt', 'w', encoding='utf-8')
x=''.join([A1[x[i:i+2]] for i in range(0,len(x),2)])
workout.write(x)
workout.close()
base.close()
получаю ошибку:
Traceback (most recent call last):
File "C:\Users\User\Desktop\SecurityAdministr ator\test2.py", line 21, in <module>
x=''.join([A1[x[i:i+2]] for i in range(0,len(x),2)])
~~^^^^^^^^^^
KeyError: '\n'
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.02.2024, 17:33
Code
1
 '\n': '\n',
Или что-то подобное.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2024, 17:33
Помогаю со студенческими работами здесь

Имеется программа, слова для замены берутся из файла, что изменить чтобы для замены писать свое предложение в консоли
program Project3_ready; {$APPTYPE CONSOLE} uses SysUtils, Windows; const

Работа с шрифтом
Здравствуйте, интересуют такие два вопроса: 1.) Как программно изменить размер шрифта выводимого текста ? 2.) Как программно...

Работа со шрифтом
Подскажите пожалуйста как в C# изменить межстрочный и межсимвольный интервалы. Какой класс может помочь в этом. Добавлено через 2 часа...

Проблема со шрифтом
Привет, уже давно, что-то я натворил теперь в Инсталяторах и Деинсталяторах отображатеся кривой шрифт, а именно другой который я скачивал...

Проблемы с шрифтом
Читаю из инета содержимое сайтов в автоматизированном режиме на сайте написано &quot;Tervasmäen Vipu ET&quot; а автомат читает...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru