Расшифровка потокового шифра Rabbit

Расшифруйте данные потокового шифра Rabbit из CryptoJS (Salted__ в Base64 с парольной фразой) или сырой шифротекст с 128-битным hex-ключом и необязательным 64-битным IV.

Rabbit — малораспространённый потоковый шифр без защиты целостности и с плохой поддержкой в библиотеках. Для новых приложений лучше AES-GCM.

Результат — формат OpenSSL «Salted__» в Base64, ключ и IV выводятся из парольной фразы; это тот же формат, что у CryptoJS.Rabbit.encrypt(text, passphrase). В самом OpenSSL шифра Rabbit нет.

Работает полностью в вашем браузере. Ваши данные никуда не загружаются.

Что такое Расшифровка Rabbit?

Расшифровывает данные, зашифрованные потоковым шифром Rabbit, обычно созданные CryptoJS.Rabbit.encrypt. Вставьте строку Base64 U2FsdGVkX1… с парольной фразой либо сырой шифротекст с hex-ключом и IV.

Как пользоваться Расшифровка Rabbit

  1. Выберите тот же Источник ключа, что и при шифровании: Парольная фраза (совместимо с OpenSSL) для данных U2FsdGVkX1… («Salted__») или Сырой ключ + IV (hex) для сырого шифротекста.
  2. Введите парольную фразу или 16-байтовый hex-ключ (и 8-байтовый IV, если он использовался).
  3. Вставьте Шифротекст и нажмите Расшифровать.

Пример

Ввод
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.

Другие категории