Как зашифровать строку методом RSA с уже готовым публичным ключом? Добрый день, столкнулся с проблемой. Хочу авторизоваться на сайте с помощью запроса, но он шифрует пароль. Я отснифил запрос на получения RSA-ключа, он выглядет такОтвет{"success":true,"publickey_mod":"d881a84806f62b79c48158d8d5c25e29975c6d18fc1098b535b6ee560dc3f6981018499e14a98694507f24d6fbfa0d1a73a72beca71bdf69877ad9d1e0fd887160cc5c18cfc1bea86620d5eb5a028810d51717d54ac0fc8536f43caa7c14ab341ee8b2847a8f09161969554a211a3c298d4753f4edfd31e16b5472d2ae3decf9fc6e9408ba1246d899aaefe5f3d2090c5b0663a16c97bd4ae213e4047a352d8c74a2b0324a2f596665edb1d5f3179d4878e43f14fb21e7d862c73bc17d9f664869d21d95302ca912d2a97fc34eb6b98a04b5a0e2632b7c732ff7a2faa18906d1a19001363f5f052ac9d704d911d1506c7a350992fa51c2b11a0067ead0ad0a6d","publickey_exp":"010001","timestamp":"482546850000","token_gid":"8f7af7879dc80f776"}
Внимание, вопрос. Как зашифровать пароль с помощью полученного ключа?

21 Авг 2019 в 07:11
212 +1
0
Ответы
1

Для зашифрования строки методом RSA с использованием полученного публичного ключа необходимо выполнить следующие шаги:

Преобразовать публичный ключ из формата, в котором он был получен, в формат, подходящий для использования в RSA шифровании. Для этого нужно преобразовать значения publickey_mod и publickey_exp в целые числа.

Создать объект RSA.PublicKey из полученных значений модуля и экспоненты.

Преобразовать строку (пароль), которую вы хотите зашифровать, в байтовый формат.

Используя метод encrypt из модуля Crypto.Cipher.PKCS1_OAEP, зашифровать строку с помощью созданного публичного ключа.

Пример кода на Python для зашифрования пароля с использованием RSA:

from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
import base64
# Преобразование публичного ключа
publickey_mod = int('d881a84806f62b79c48158d8d5c25e29975c6d18fc1098b535b6ee560dc3f6981018499e14a98694507f24d6fbfa0d1a73a72beca71bdf69877ad9d1e0fd887160cc5c18cfc1bea86620d5eb5a028810d51717d54ac0fc8536f43caa7c14ab341ee8b2847a8f09161969554a211a3c298d4753f4edfd31e16b5472d2ae3decf9fc6e9408ba1246d899aaefe5f3d2090c5b0663a16c97bd4ae213e4047a352d8c74a2b0324a2f596665edb1d5f3179d4878e43f14fb21e7d862c73bc17d9f664869d21d95302ca912d2a97fc34eb6b98a04b5a0e2632b7c732ff7a2faa18906d1a19001363f5f052ac9d704d911d1506c7a350992fa51c2b11a0067ead0ad0a6d', 16)
publickey_exp = int('010001', 16)
rsa_public_key = RSA.construct((publickey_mod, publickey_exp))
# Создание шифратора
cipher = PKCS1_OAEP.new(rsa_public_key)
# Пароль для шифрования
password = b'password123'
# Зашифрованный пароль
encrypted_password = cipher.encrypt(password)
# Преобразование зашифрованного пароля в base64 для передачи в запросе
encrypted_password_base64 = base64.b64encode(encrypted_password)
print(encrypted_password_base64.decode())

После выполнения этого кода у вас будет зашифрованная строка пароля в формате base64, которую вы сможете использовать для авторизации на сайте.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 117 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир