Как зашифровать текстовый файл после получения открытого ключа, разделяемого между клиентом и сервером в Java

-6

Я наконец-то понял, как выполнить обмен ключами Диффи-Хеллмана в Java, теперь проблема в том, что мне нужно зашифровать текстовый файл, используя общий ключ. Я не знаю, как вообще начать это делать. TXT файл представляет собой просто целые числа 1 2 3 4 5 каждый в новой строке. Есть ли простая строка кода, о которой я не знаю, которая может выполнять эту функцию? Общий ключ, который у меня есть, 18.0.

спросил(а) 2021-01-19T19:37:03+03:00 6 месяцев, 2 недели назад
1
1 ответ
-5

зашифровать текстовый файл после получения открытого ключа, разделяемого между клиентом и сервером в Java

Предположим, вы работаете над учебным или игрушечным проектом, иначе нет смысла (пере) изобретать ваше собственное безопасное общение. Если вы хотите серьезно относиться к безопасности, просто используйте TLS/SSL (опционально с двухсторонней аутентификацией клиента ssl) для онлайн-передачи контента.

Я действительно надеюсь, что ради вас вы просто учитесь или играете с этим.

зашифровать текстовый файл с использованием общего ключа. Я не знаю, как вообще начать это делать.

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

Я предлагаю создать случайный ключ шифрования данных для шифрования контента. Тогда вы можете просто использовать открытый ключ получателя, чтобы зашифровать ключ шифрования данных и подписать хеш содержимого, используя закрытый ключ отправителя. Никогда не используйте обычный (учебник) RSA, используйте пропперы.

Я сделал несколько заметок о шифровании для себя, вы можете черпать вдохновение.

Общий ключ, который у меня есть, 18.0.

По-видимому, вы используете не достаточно длинные или недостаточно случайные открытые ключи. Симметричные шифры требуют ключей фиксированной длины (например, AES требует 128, 192 или 256-битных ключей). Вы можете генерировать более длинные ключи, используя любую функцию или ключ хеширования. Если вы хотите использовать двустороннюю связь, вам нужен отдельный ключ для каждого направления.

Независимо от этого - начальное значение короткого ключа (маленький общий ключ, короткие открытые ключи) было бы возможно для перебора. Есть много способов, как вы можете выстрелить себе в ногу, когда имеете дело с криптографией, поэтому по возможности используйте какой-нибудь промышленный стандарт (например, TLS).

ответил(а) 2021-01-19T19:37:03+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема