Шифрование и расшифровка RC4
Шифрует или расшифровывает старые данные потоковым шифром RC4.
RC4 по современным меркам слаб — используйте его, чтобы читать старые данные, а для новых — AES или ChaCha20. Перейти к AES
Он понадобится для расшифровки. Ничего из введённого не покидает эту страницу.
По умолчанию в OpenSSL — 10 000. Подойдёт любое число: чем больше, тем медленнее подбирать пароль; для расшифровки нужно то же число.
openssl enc -rc4 -pbkdf2 -iter 10000 -a -A -provider legacy -provider defaultOpenSSL запросит пароль; вставьте в него текст или добавьте файлы -in и -out.
RC4, также известный как ARC4 или ARCFOUR, — потоковый шифр, который когда-то использовался в SSL/TLS и в Wi-Fi с защитой WEP. У него нет блоков, режимов и IV: он превращает ключ в поток байтов и складывает его с текстом по XOR, поэтому шифротекст ровно такой же длины, как текст. Эта страница шифрует и расшифровывает текст RC4 паролем в формате openssl enc -pbkdf2 или ключом в hex длиной от 40 до 2048 бит (по умолчанию 128), чтобы вы могли прочитать данные из старых систем или подготовить данные для них. RC4 взломан; для новых данных используйте AES или ChaCha20. Всё работает в браузере: текст и ключи не покидают ваше устройство, бесплатно и без регистрации.
Как расшифровать текст RC4
- Выберите «Расшифровать» и вставьте текст в Base64 или hex — формат определяется автоматически — или выберите «Зашифровать» и введите текст.
- Введите пароль или переключитесь на «Ключ и IV (hex)» и введите ключ; у RC4 нет IV, поэтому поле только одно — для ключа.
- Выберите длину ключа, с которой были зашифрованы данные: 128 бит, если не знаете точно, или 40 бит для экспортного RC4.
- Скопируйте или скачайте результат либо нажмите «Поменять местами», чтобы перенести его в поле ввода и сменить направление.
Возможности
- RC4 с ключом любой длины от 40 до 2048 бит с шагом 8 бит; 40, 128, 256 и 2048 — одним щелчком
- Без IV и дополнения: шифротекст ровно такой же длины, как текст
- Режим пароля в формате openssl enc -pbkdf2 и команда rc4 или rc4-40 для устаревшего провайдера (legacy) OpenSSL
- Режим «Ключ и IV (hex)» только с ключом — введённым вручную или сгенерированным
- Base64 или hex на входе и выходе; нетекстовые результаты показываются в hex
Это конфиденциально?
Да. RC4 работает на WebAssembly внутри браузера; расшифровываемые данные, их ключ и пароль никуда не загружаются и не сохраняются.
Частые вопросы
Надёжен ли RC4?
Нет. В его ключевом потоке есть статистические смещения, которые позволяют восстановить данные, поэтому в 2015 году RFC 7465 запретил RC4 в TLS. Используйте его только для чтения уже существующих данных RC4, а всё, что храните, зашифруйте заново AES или ChaCha20.
ARC4 — это то же самое, что RC4?
Да. RC4 создал Рон Ривест в 1987 году, и алгоритм держался в коммерческой тайне; после утечки в 1994 году другие реализовали его под названиями ARC4 или ARCFOUR («предположительно RC4»), потому что RC4 — товарный знак. Шифротекст у них одинаковый.
Можно ли расшифровать это в OpenSSL?
Да, для 128- и 40-битных ключей: echo 'U2FsdGVkX1…' | openssl enc -d -rc4 -pbkdf2 -iter 10000 -a -A -provider legacy -provider default или -rc4-40 для 40-битного ключа. В режиме «Ключ и IV» укажите -K <ключ в hex> вместо -pbkdf2 -iter, без -iv. Других длин ключа RC4 в openssl enc нет.
Можно ли повторно использовать ключ RC4?
Нет. Один и тот же ключ всегда даёт один и тот же ключевой поток, поэтому XOR двух результатов с одним ключом убирает поток и раскрывает XOR двух текстов. В режиме пароля этого не происходит: случайная соль даёт каждому сообщению собственный ключ, и результат каждый раз разный. В режиме «Ключ и IV» берите для каждого сообщения новый ключ.
Почему я получаю нечитаемые байты, а не ошибку?
Потому что RC4 не может отличить неверный ключ от верного: расшифровка с неправильными паролем, числом итераций или длиной ключа всё равно даёт байты — просто случайные, и страница показывает их в hex. Проверьте, что все настройки совпадают с теми, что использовались при шифровании.