Расшифровка потокового шифра Rabbit
Расшифруйте данные потокового шифра Rabbit из CryptoJS (Salted__ в Base64 с парольной фразой) или сырой шифротекст с 128-битным hex-ключом и необязательным 64-битным IV.
Результат — формат OpenSSL «Salted__» в Base64, ключ и IV выводятся из парольной фразы; это тот же формат, что у CryptoJS.Rabbit.encrypt(text, passphrase). В самом OpenSSL шифра Rabbit нет.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Что такое Расшифровка Rabbit?
Расшифровывает данные, зашифрованные потоковым шифром Rabbit, обычно созданные CryptoJS.Rabbit.encrypt. Вставьте строку Base64 U2FsdGVkX1… с парольной фразой либо сырой шифротекст с hex-ключом и IV.
Как пользоваться Расшифровка Rabbit
- Выберите тот же Источник ключа, что и при шифровании: Парольная фраза (совместимо с OpenSSL) для данных
U2FsdGVkX1…(«Salted__») или Сырой ключ + IV (hex) для сырого шифротекста. - Введите парольную фразу или 16-байтовый hex-ключ (и 8-байтовый IV, если он использовался).
- Вставьте Шифротекст и нажмите Расшифровать.
Пример
U2FsdGVkX19PD1rihUsU44L3vJkKAmy580QhQw== (passphrase "secret")
Hello Rabbit
Шифротекст из CryptoJS.Rabbit.encrypt("Hello Rabbit", "secret").
Когда использовать Расшифровка Rabbit
Используйте, чтобы прочитать или отладить данные приложений с CryptoJS Rabbit. Без верной парольной фразы или ключа расшифровать нельзя.
Как работает Расшифровка Rabbit
Соль читается из заголовка Salted__, 16-байтовый ключ и 8-байтовый IV выводятся заново (EVP_BytesToKey MD5 или PBKDF2-SHA256), и гамма Rabbit складывается по XOR с шифротекстом. В сыром режиме ваши ключ и IV используются напрямую. В потоковых шифрах нет дополнения, поэтому неверный ключ проявляется как вывод с некорректным UTF-8.
Распространенные Случаи Использования
- Расшифровать значения, сохранённые веб-приложением с CryptoJS.Rabbit
- Проверить, что ваша реализация Rabbit совпадает с CryptoJS
- Восстановить тестовые данные при отладке
- Перенести данные, зашифрованные Rabbit, на AES
Примечание по Безопасности
Для Rabbit практических атак не известно, но он редко применяется, не имеет встроенной защиты целостности, и его поддерживают немногие библиотеки. Для новых систем используйте AES-GCM.
Часто Задаваемые Вопросы
Почему появляется ошибка «invalid UTF-8»?
Скорее всего, неверны парольная фраза или ключ; сам Rabbit этого не обнаруживает. Если исходные данные были двоичными, переключите вывод на Hex.
У моего шифротекста нет префикса U2FsdGVkX1.
Значит, CryptoJS вызывали с явными ключом и IV. Выберите Сырой ключ + IV (hex) и введите их в hex.
Поддерживается ли RabbitLegacy?
Нет, только стандартный вариант CryptoJS.Rabbit.