Расшифровка RSA закрытым ключом
Расшифруйте шифротекст RSA (Base64 или hex) закрытым ключом PEM: RSA-OAEP SHA-256, OAEP SHA-1 или PKCS#1 v1.5. Понятные ошибки при неверном ключе или дополнении.
Рекомендуемое дополнение — OAEP. MGF1 использует ту же хеш-функцию, как в Web Crypto и openssl pkeyutl -pkeyopt rsa_oaep_md.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Расшифровка RSA?
Расшифровывает шифротекст RSA вашим закрытым ключом в формате PEM (PKCS#8 BEGIN PRIVATE KEY или PKCS#1 BEGIN RSA PRIVATE KEY). Поддерживает RSA-OAEP с SHA-256 или SHA-1 и устаревшее дополнение PKCS#1 v1.5, совместимо с результатами OpenSSL, Web Crypto, Java и Node.js.
Как пользоваться Расшифровка RSA
- Вставьте Закрытый ключ (PEM) (без пароля) или нажмите Сгенерировать тестовую пару ключей (2048 бит), чтобы поэкспериментировать.
- Выберите Дополнение, использованное при шифровании.
- Вставьте Шифротекст и выберите Base64 или Hex в качестве его кодировки.
- Нажмите Расшифровать; если открытый текст двоичный (например, ключ AES), переключите вывод на Hex.
Пример
Ciphertext from Node.js `crypto.publicEncrypt` (RSA-OAEP, oaepHash sha256) of "Hello RSA", with the matching 2048-bit PKCS#8 private key
Hello RSA
Когда использовать Расшифровка RSA
Используйте, чтобы проверить шифротекст, созданный вашим кодом, расшифровать тестовые данные или убедиться в совместимости платформ. Не вставляйте в браузер реальные рабочие закрытые ключи; берите тестовые. Закрытые ключи, защищённые паролем, сначала нужно экспортировать без парольной фразы.
Как работает Расшифровка RSA
Закрытая экспонента восстанавливает дополненное сообщение m = cᵈ mod n (с оптимизацией через CRT), затем дополнение удаляется и проверяется: OAEP проверяет маску MGF1 и хеш метки для выбранного SHA-256 или SHA-1, PKCS#1 v1.5 проверяет заголовок 00 02 и разделитель. Шифротекст должен быть ровно такой же длины, как модуль (256 байт для 2048-битных ключей); любое несоответствие ключа, дополнения или хеша приводит к ошибке расшифровки, а не к неверному выводу.
Распространенные Случаи Использования
- Проверить, что вывод RSA-OAEP из браузера расшифровывается ключом вашего сервера
- Расшифровать ключ AES, обёрнутый RSA, в тесте гибридного шифрования
- Диагностировать несовпадение OAEP SHA-1 и SHA-256 между Java и Node.js
- Расшифровать данные PKCS#1 v1.5 из устаревшей системы
Примечание по Безопасности
Ключи и сообщения обрабатываются только в вашем браузере. Не вставляйте рабочие закрытые ключи на сайты, которые вы не контролируете, — создайте тестовую пару ключей.
Часто Задаваемые Вопросы
«Decryption failed» — в чём проблема?
Обычно не совпадают дополнение или хеш OAEP (SHA-1 и SHA-256), шифротекст относится к другой паре ключей либо повреждён при копировании. Сначала попробуйте другой хеш OAEP.
Мой ключ начинается с BEGIN ENCRYPTED PRIVATE KEY.
Ключи, защищённые паролем, не поддерживаются. Преобразуйте тестовую копию командой openssl pkey -in key.pem -out plain.pem и осторожно обращайтесь с незашифрованным ключом.
В ошибке о длине шифротекста сказано, что нужно 256 байт.
Шифротекст RSA всегда имеет длину модуля. Проверьте, что вставлена вся строка Base64 и выбрана верная кодировка ввода (Base64 или Hex).