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

Лучшая защита — шифрование

03.07.2023, 16:24. Показов 5741. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Лучшая защита — шифрование
Коля испугался, что Аня подсмотрит все его пароли в блокноте, и решил их зашифровать. Для этого он берёт изначальный пароль — трёхзначное число — и по нему строит новое число по следующим правилам:

находится сумма цифр, стоящих в двух младших разрядах (десятки и единицы);
находится сумма цифр, стоящих в двух старших разрядах (сотни и десятки)
Эти две суммы, записанные друг за другом, в порядке не возрастания, формируют новое число.
Помогите реализовать алгоритм шифрования.

Python
1
2
3
4
5
6
7
r = int(input())
i = r % 10 + r // 10 % 10
u = r // 100 + r // 10 % 10
if i > u:
    print(f'{i}{u}')
else:
    print(f'{u}{i}')
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.07.2023, 16:24
Ответы с готовыми решениями:

Защита данных от утечки. Шифрование диска (BitLocker) и шифрование папки (EFS)
Всем здравствуйте. Задача: предотвратить утечку информации из компании (копирование на флешку или отправка на почту). - Шифрование...

Лучшая защита информации - её "суицид"
Вообще-то тему конечно открываю из почти сугубо корыстных целей. Что меня подтолкнуло на размышления над предметом: то, что в общем...

Защита (шифрование) строки подключения
Добрый день! Есть приложение, которое работает с БД. В приложении находится строка подключения с логином и паролем. Подскажите,...

14
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
03.07.2023, 18:07
Python
1
2
3
4
5
a = int(input('Исходный пароль: '))
b = list(map(int,str(a)))
L = str(sum(b) - b[-1])
R = str(sum(b) - b[0])
print('Зашифрованный пароль:', R+L if int(L) < int(R) else L+R)
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
04.07.2023, 20:22
Цитата Сообщение от idealist Посмотреть сообщение
a = int(input('Исходный пароль: '))
b = list(map(int,str(a)))
офигенно! получить число что бы потом перевести в строку, затем каждую цифру опять в число что бы получить список да еще отбирать числа по индексам затем сумму перевести в строку а потом в условии снова в число
1
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
04.07.2023, 21:00
Romantia, ну так правильно же у вас все решено
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
04.07.2023, 21:04
Цитата Сообщение от s_t_r_a_j Посмотреть сообщение
ну так правильно же у вас все решено
, знак сравнения нужно изменить
Python
1
if i < u:
0
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
04.07.2023, 21:08
Semen-Semenich, с чего бы это?
Цитата Сообщение от Romantia Посмотреть сообщение
Эти две суммы, записанные друг за другом, в порядке не возрастания
Добавлено через 31 секунду
то есть уменьшения)
все верно решено
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
04.07.2023, 21:19
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
офигенно! получить число что бы потом перевести в строку, затем каждую цифру опять в число что бы получить список да еще отбирать числа по индексам затем сумму перевести в строку а потом в условии снова в число
Ну, не знаю, для меня это гораздо нагляднее, чем кракозябры с делением и взятием остатка
0
 Аватар для Semen-Semenich
5234 / 3479 / 1175
Регистрация: 21.03.2016
Сообщений: 8,306
04.07.2023, 21:40
Цитата Сообщение от idealist Посмотреть сообщение
для меня это гораздо нагляднее, чем кракозябры с делением и взятием остатка
это не оптимально перевод из числа в строку и наоборот затратная операция да еще несколько раз. зачем получать число и переводить в строку. достаточно строку разбить на список и перевести цифры в числа. для трех цифр заморачиватся с остатком от деления не обязательно
Python
1
2
3
a,b,c = map(int, input('Исходный пароль: '))
one_sum = a + b
second_sum = b + c
но желательно что бы понимать как работать именно с числом. например
Python
1
2
3
4
5
6
7
8
number = int(input('Исходный пароль: '))
list_numeral = []
while number:
    list_numeral.append(number %10)
    number //= 10
a,b,c = list_numeral 
one_sum = a + b
second_sum = b + c
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
04.07.2023, 21:57
Цитата Сообщение от Semen-Semenich Посмотреть сообщение
но желательно что бы понимать как работать именно с числом
Ну, тут-то для меня все ясно, а вот со строками неплохо побаловаться для тренировки.
А так-то специалисты говорят, что лучшая программа - это которая нагляднее, понятнее и легко читается, пусть даже и проигрывает в скорости.
Цитата Сообщение от Semen-Semenich Посмотреть сообщение

Python
1
2
3
4
5
6
7
8
number = int(input('Исходный пароль: '))
list_numeral = []
while number:
 list_numeral.append(number %10)
 number //= 10
a,b,c = list_numeral 
one_sum = a + b
second_sum = b + c
Не, вот на такие тексты у меня как раз аллергия...
0
Любознательный
 Аватар для YuS_2
7406 / 2256 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
05.07.2023, 07:49
Цитата Сообщение от idealist Посмотреть сообщение
так-то специалисты говорят, что лучшая программа - это которая нагляднее, понятнее и легко читается, пусть даже и проигрывает в скорости.
это негодные "специалисты"...
лучшая программа, это:
1. Работающая без сбоев (отсутствие багов).
2. Выполняющая работу быстрее/оптимальнее.
3. И только после первых двух пунктов, будут иметь значение наглядность, читаемость и прочие рюшечки-шашечки, в любом порядке приоритета.
1
0 / 0 / 0
Регистрация: 21.09.2023
Сообщений: 5
23.09.2023, 14:38
n = int(input())
n1 = n // 100
n2 = n // 10 % 10
n3 = n % 10
m1 = n2 + n3
m2 = n1 + n2
l1 = str(n2 + n3)
l2 = str(n1 + n2)
if m1 > m2:
print(l1 + l2, sep="")
else:
print(l2 + l1, sep="")
0
0 / 0 / 0
Регистрация: 15.03.2024
Сообщений: 2
15.03.2024, 13:51
Легко и просто
Добавлено через 9 минут
Python
1
2
3
4
i = input()
b, c, v = int(i[0]), int(i[1]), int(i[2])
x, y = v + c, b + c
print(max(x, y), min(x, y), sep='')
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
15.03.2024, 14:30
Цитата Сообщение от snnak Посмотреть сообщение
Легко и просто...
... только неправильно
0
0 / 0 / 0
Регистрация: 15.03.2024
Сообщений: 2
15.03.2024, 19:09
а где это решение неправильно? Условию соответствует, в тестовой системе все тесты прошло и пишет что решение правильно
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
15.03.2024, 20:34
Ну или так:
Python
1
2
a,b,c = map(int, input('->'))
print(f'{a+b}{c+b}' if a >= c else f'{c+b}{a+b}')
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2024, 20:34
Помогаю со студенческими работами здесь

Клиент-серверное шифрование или защита доступа
Ребят, помогите разобраться! есть у меня приложение, и самопальный web-сервер лицензирования алгоритм такой: Клиент делает запрос...

Шифрование системного диска или защита от физ. посягательсв
Внимание, много букв! :read: Доброго времени суток! С не давних пор у меня появилось потребность в самой жесткой системе защиты...

Шифрование и защита данных через хеш-функцию SHA-3 Keccak
Шифрование и защита данных через хеш-функцию SHA-3 Keccak. Я хотел написать статью, я написал статью, всё просто) Рекомендуется...

Шифр Цезаря, шифрование акбаш, шифрование афины. Найдите ошибки
Всем привет, кто может помочь разобраться в этих трёх кодах, нужно найти ошибки, если они есть. Нужно к сегодняшнему вечеру, выручайте. ...

Шифрование с помощью матрицы и вектора (шифрование методом аналитических преобразований)
Программисты Здравствуйте! Не могу сделать этот метод,не понимаю и все тут), хорошо бы если объясняли еще....(сам сайт готов, надо только...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru