Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 1
Регистрация: 22.11.2017
Сообщений: 14

Зашифровать сообщение в тексте Python

09.03.2018, 23:21. Показов 3961. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В заданном тексте требуется скрыть некоторую фразу,состоящую из букв. Если бит секретного сообщения равен единице, то в тексте-контейнере меняем русскую букву на английский аналог. Если бит равен нулю, то очередную букву-аналог в тексте-контейнере оставляем без изменений. Буквы-аналоги - это буквы русского языка, имеющие аналогичное начертание в англ.языке.
После шифрования, шифровку нужно раскодировать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.03.2018, 23:21
Ответы с готовыми решениями:

Зашифровать и расшифровать сообщение
Помогите пожалуйста решить задачу! У нас есть сообщение, оно состоит из больших латинских букв и точек. Чтобы скрыть его смысл, мы...

3. Зашифровать текст (не более 255 символов), записывая все слова наоборот. Считать, что слова в тексте отделены друг от друга одним пробелом
3. Зашифровать текст (не более 255 символов), записывая все слова наоборот. Считать, что слова в тексте отделены друг от друга одним...

Зашифровать сообщение следующим образом
зашифровать сообщение следующим образом: сообщение делится на две части равной длинны, эти части меняются местами. В левой части буквы...

9
 Аватар для Luca Brasi
892 / 204 / 55
Регистрация: 06.11.2015
Сообщений: 2,288
Записей в блоге: 2
10.03.2018, 00:50
А что конкретно не получается?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
10.03.2018, 13:19
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
#!/usr/bin/env python3
import re
t = 'Это было интересное время… Именно в такие почему-то любят отправлять своих героев многочисленные авторы пишущие в жанре АИ, забывая при этом, как о древнем китайском проклятии, так и о том, что даже просто уцелеть для чужака не имеющего ни родных, ни просто знакомых, незнающего языка и обычаев чужой страны… задача практически нереальная. А уж если возникла мысль закинуть в прошлое женщину, да еще в «интересное время»… Но все же.'
secret = 'secret'
 
replace_map = {
    'а': 'a',
    'о': 'o',
    'е': 'e',
    'р': 'p',
    'х': 'x',
    'с': 'c',
}
 
def str2bin(line):
    """https://www.cyberforum.ru/python/thread2206820.html#post12194893"""
    r = '{:b}'.format(int.from_bytes(line.encode(), 'big'))
    d, m = divmod(len(r), 8)
    if m:
        r = r.zfill((d + 1)*8)
    return r
 
def bin2str(line):
    """https://www.cyberforum.ru/python/thread2206820.html#post12194893"""
    length, m = divmod(len(line), 8)
    if m:
        length += 1
 
def generator():
    for i in str2bin(secret):
        yield i
    while True:
        yield '0'
 
g = generator()
 
def replace(m):
    letter = m.group(0)
    if letter not in replace_map:
        return letter
    if g.__next__() == '0':
        return letter
    return replace_map[letter]
 
t2 = re.sub(r'\w', replace, t)
print(t2)
1
0 / 0 / 1
Регистрация: 22.11.2017
Сообщений: 14
14.03.2018, 21:51  [ТС]
Питон изучаю не так давно, не понимаю, что означает данная конструкция.
length, m = divmod(len(line), 8)
if m:
length += 1
Можете, пожалуйста, объяснить?
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
15.03.2018, 06:31
Это деление с округлением вверх: обычный результат деления - это количество полноразмерных кусков, а если есть ненулевой остаток - значит, общее количество кусков на 1 больше.

А меня когда-то научили такому способу:
Python
1
length = (len(line) - 1) // 8 + 1
1
0 / 0 / 1
Регистрация: 22.11.2017
Сообщений: 14
17.03.2018, 20:26  [ТС]
Спасибо большое!
А не подскажите, как расшифровать зашифрованное слово?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
17.03.2018, 20:29
Эм... Точно также? Пробегаемся по всей строке, ищем английские буквы или незаменённые русские из словаря.
0
0 / 0 / 1
Регистрация: 22.11.2017
Сообщений: 14
18.03.2018, 18:25  [ТС]
Пробовал сделать, сообщение не выводит, помогите пожалуйста с кодом

Добавлено через 4 часа 46 минут
Рыжий Лис, расшифровка выполняется уже отдельной задачей?
0
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 6
22.03.2018, 22:00
Тоже пытаюсь разобраться с расшифровкой зашифрованного ранее текста.
Делаю путём перебора получившейся строки, в которой меняли русские буквы на английские.
Python
1
2
3
4
5
6
7
8
9
10
t2 = re.sub(r'\w', replace, t)
 
decrypt = []
for le in t2:
    if le in replace_map.keys():
        one = 1
        decrypt.append(one)
    else:
        zero = 0
        decrypt.append(zero)
Готовый массив с единицами и нолями превращаю в строку. В итоге получается не то, что нужно

Python
1
2
temp_dec = ''.join(str (v) for v in decrypt)
print(temp_dec)
Строка, которую шифровали, выглядела так - 1101000010110111110100001011010011010001 1000000011010000101100001101000110000001 1101000110000010110100001011001011010001 1000001111010000101110011101000110000010 1101000010110101

А в массиве - 010100000000100000000

Что я делаю не так?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.03.2018, 05:08
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
#!/usr/bin/env python3
 
def bin2str(line):
    """https://www.cyberforum.ru/python/thread2206820.html#post12194893"""
    print (line)
    length, m = divmod(len(line), 8)
    if m: length += 1
    return int(line, 2).to_bytes(length, 'big').decode()
 
 
replace_map = {  # ru -> en
    'а': 'a',
    'о': 'o',
    'е': 'e',
    'р': 'p',
    'х': 'x',
    'с': 'c',
}
 
ls_ru = replace_map.keys()
ls_en = replace_map.values()
 
t2 = 'Это былo интepеснoe врeмя… Имeнно в такиe почeму-то любят oтпpавлять своиx гeрoeв мнoгочислeнные автopы пишущие в жанpе АИ, зaбывая пpи этoм, кaк о дpевнем китайском проклятии, так и о том, что даже просто уцелеть для чужака не имеющего ни родных, ни просто знакомых, незнающего языка и обычаев чужой страны… задача практически нереальная. А уж если возникла мысль закинуть в прошлое женщину, да еще в «интересное время»… Но все же.'
 
r = []
for i in t2:
    if i in ls_ru:
        r.append('0')
        continue
    if i in ls_en:
        r.append('1')
 
print(''.join(r))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.03.2018, 05:08
Помогаю со студенческими работами здесь

Отправить сообщение, но зашифровать пароль?
Здравствуйте. Я хочу отправить сообщение. В доках нашел командлет: Send-MailMessage В нем мы можем указать учетную запись в...

Зашифровать сообщение по определенному алгоритму
Привет, друзья. Нужно зашифровать сообщение методом замены букв. Есть данные: qpiq, piq, pi - a qpoq, poq, po - b qppq, ppq, pp - c...

Можно ли зашифровать сообщение 2-мя алгоритмами
Здравствуйте уважаемые форумчане у меня есть небольшая задумка зашифровать исходное сообщение 2-мя алгоритмами шифрования чтобы допустим...

Зашифровать сообщение шифром Цезаря(езЦяар)
Напишите программу, которая шифрует входной текст шифром езЦяар: *алфавит - строчные буквы русского алфавита без ё *ключ состоит из...

Как зашифровать сообщение в C# и расшифровать на PHP
По системе открытый/закрытый ключ надо. Пытался через Openssl в PHP и RSACryptoServiceProvider в c#, сообщение зашифрованное ключом из...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
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