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

Программа для расшифровки пароля

05.10.2019, 11:12. Показов 4177. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите программу для расшифровки паролей, которые
зашифрованы с помощью шифровальной решетки. Шифрорешетка - это
квадрат 4 на 4 с четырьмя вырезанными окошками. Поместите решетку на
листе бумаги такого же размера с буквами, выписываете первые 4 символа,
которые видно в окошках. Затем поверните решетку на 90 градусов по
часовой стрелке. Выпишите следующие символы и повторите поворот. В
итоге процедура повторяется 4 раза.
Входные данные: Шифровальная решетка и зашифрованный пароль,
как список чисел. Пример: [[1,0,0,0], [0,0,1,0], [1,0,0,1],
[0,0,0,0]], [[1,3,6,2], [9,0,4,5], [7,2,1,9], [6,8,0,4]].
Выходные данные: Пароль, как список чисел. Пример:
[1,4,7,9,3,2,1,8,9,5,2,4,6,0,6,0].
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.10.2019, 11:12
Ответы с готовыми решениями:

Программа для расшифровки сообщения
Известно зашифрованное сообщение Ц Д О З И Ф К Д Ц Ю Прочитать сообщение, если известно, что использован шифр, по которому к...

Составить программу для зашифровки-расшифровки текста
Составить программу для зашифровки-расшифровки текста Выполняется переворот текста и замена каждой нечетной буквы на ее номер

Напишите программу для расшифровки сообщений
Направленное излучение пронизывало земную атмосферу, образуя постоянный канал для приёма и передачи на внешние станции, служивший вместо...

12
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
05.10.2019, 13:04
GodLike322, В чем проблема то? хотя бы первое прочтение сделай, до любых поворотов
0
1 / 1 / 0
Регистрация: 05.10.2019
Сообщений: 24
05.10.2019, 13:11  [ТС]
Извини чел, если я спрашиваю значит, я не могу это сделать. Я не знаю, как сравнит эл-ты 1-ого массива с эл-ми 2-ого(1,0)
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
05.10.2019, 13:22
numpy можно использовать? а то без него кисловато будет

Добавлено через 1 минуту
Цитата Сообщение от GodLike322 Посмотреть сообщение
Я не знаю, как сравнит эл-ты 1-ого массива с эл-ми 2-ого(1,0)
то есть ты не осилил
Python
1
if array[i]==main_array[i]
? Странно что такие задачи вам дают если вы этого еще не проходили...
0
1 / 1 / 0
Регистрация: 05.10.2019
Сообщений: 24
07.10.2019, 18:34  [ТС]
Ну а шо ты хотел первый курс, я питон вообще не проходил. А лекции у нас начались, когда многие на 3 -4 лабе остановились
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
07.10.2019, 18:36
GodLike322, я больше о том, что если взять любую книжку по питону то через полчаса чтения можно узнать про списки, индексы, сравнения.
В общем - если можно использовать numpy то задача проста и тривиальна. Если нет (полагаю что так), то надо уже побороться. Напиши выборку чисел согласно решетки ДО поворотов, я тебе потом помогу ее "поворачивать"
0
1 / 1 / 0
Регистрация: 05.10.2019
Сообщений: 24
08.10.2019, 08:16  [ТС]
Я пытался начать читать ''Чистый питон", но там сразу с функции assert начинается, в итоге я ничего не понял и перестал.

Добавлено через 1 час 16 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mas = [
      [1,3,6,2],
      [9,0,4,5],
      [7,2,1,9],
      [6,8,0,4]
]
mas_1 = [
        [1,0,0,0],
        [0,0,1,0],
        [1,0,0,1],
        [0,0,0,0]
]
mas_2 = []
 
for i in range(len(mas)):
    for j in range(len(mas)):
        if mas_1[i][j] == 1:
            mas_2.append(mas[i][j])
print(mas_2)
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
08.10.2019, 08:20
GodLike322, код в теги пайтон убирай, чтобы форматировалось (есть кнопка на панели). Ок, норм, как теперь повернуть наш mas по часовой стрелке? тоже циклами и тоже в новый массив.
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
08.10.2019, 08:47
Лучший ответ Сообщение было отмечено GodLike322 как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import numpy as np
arr = np.array([[1,3,6,2],
                [9,0,4,5],
                [7,2,1,9],
                [6,8,0,4]])
grid = np.array([[1,0,0,0],
                 [0,0,1,0],
                 [1,0,0,1],
                 [0,0,0,0]])
for _ in range(4):
    for i in range(4):
        for j in range(4):
            if grid[i, j]:
                print(arr[i, j], end='')
    grid = np.rot90(grid, -1)
Возможно, что в numpy можно сразу сделать выборку по маске.
Использовать стандартные списки неудобно, т.к. нужно писать функцию поворота на 90 градусов.

Добавлено через 11 минут
Есть такое
Python
1
2
for i in range(4):
    cmp = np.compress(grid[i], arr[i])
1
1 / 1 / 0
Регистрация: 05.10.2019
Сообщений: 24
08.10.2019, 08:49  [ТС]
Большо спасибо
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,695
Записей в блоге: 29
08.10.2019, 08:50
ioprst, в нумпи и поворот и выборку можно делать, там вообще правило, что если используешь циклы (в нумпи) - что-то делаешь не так.
как пример,если интересно
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np
 
key = [[1, 0, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1], [0, 0, 0, 0]]
decrypted = [[1, 3, 6, 2], [9, 0, 4, 5], [7, 2, 1, 9], [6, 8, 0, 4]]
 
 
def decrypt(decrypted: list, key: list) -> list:
    ar = np.array(key)
    ar1 = np.array(decrypted)
    result = []
    for i in range(4):
        result = result + (ar1[ar == 1].tolist())
        ar = np.rot90(ar, axes=(1, 0))
    return result
 
 
assert decrypt(decrypted, key) == [1, 4, 7, 9, 3, 2, 1, 8, 9, 5, 2, 4, 6, 0, 6, 0]
Цитата Сообщение от ioprst Посмотреть сообщение
спользовать стандартные списки неудобно
как я понимаю им нельзя нумпи использовать

Добавлено через 40 секунд
Цитата Сообщение от GodLike322 Посмотреть сообщение
Большо спасибо
так нумпи можно использовать? я же тебя с самого начала спросил
2
1 / 1 / 0
Регистрация: 05.10.2019
Сообщений: 24
08.10.2019, 08:52  [ТС]
Видимо да, только сегодня узнал
0
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
08.10.2019, 08:55
Цитата Сообщение от Welemir1 Посмотреть сообщение
там вообще правило, что если используешь циклы (в нумпи) - что-то делаешь не так.
знаю (не отрицаю), мало опыта с данной библиотекой.
Но мне не удалось нагуглить как выбрать все элементы матрицы по маске, нашел только выборку по одной из осей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.10.2019, 08:55
Помогаю со студенческими работами здесь

Создание приложения для шифровки и расшифровки строки
Cоздать приложение на Flask c двумя страничками Первая страничка должна иметь ссылку /encrypt?string=<string_to_encrypt> Вторая...

Программа для расшифровки пароля
Напишите программу для расшифровки паролей, которые зашифрованы с помощью шифровальной решетки. Шифрорешетка - это квадрат 4 на 4 с...

Программа для расшифровки кода
Приветствую, нужно написать программу для расшифровки кода:...

Программа для расшифровки сообщения
Вообщем нужно написать программу, которая будет расшифровывать сообщение. Сам не знаю как делать, может вы подскажете, дадите какие-то...

Программа для расшифровки текста
для расшифровки текста... ну то есть вставляешь в сидиром диск, там человек чего-то говорить, а эта умная програма распознает его голос и в...


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

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

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru