Чёрный кабинет EN

Утилиты · Современная криптография

XOR-шифр онлайн

XOR текста или байтов с ключом: hex, Base64 и текст, поиск однобайтового ключа.

Считается в вашем браузере. Текст никуда не отправляется.

Как пользоваться

Вставьте данные в верхнее поле. Это может быть обычный текст, шестнадцатеричные байты (00 1e 00 25, с пробелами или без, можно с 0x) или Base64. В режиме «Авто» утилита сама определяет формат и пишет под полем, что распознала и сколько получилось байтов. Если угадала неправильно, выберите формат вручную.

Ключ вводится текстом или в hex. Текст переводится в байты UTF-8: латинская буква — один байт, русская — два. Если ключ короче данных, он повторяется по кругу. Результат можно показать текстом, в hex или Base64. Полоска над результатом показывает первые байты: байт данных, байт ключа и то, что вышло после XOR.

XOR обратим: если зашифровать результат тем же ключом ещё раз, вернётся исходник. Кнопка «Результат → на вход» переносит байты наверх, чтобы это проверить.

Атака по известному тексту

Если известно начало сообщения, ключ находится без перебора: шифр ⊕ открытый текст = ключ. Впишите известный кусок, и утилита покажет байты ключа под ним. Повторяющийся ключ выдаёт себя: байты начинают идти по второму кругу, и по этому месту видна длина ключа. Кнопка «Подставить этот ключ» берёт найденный ключ (текстом, если байты читаются, иначе в hex) и сразу расшифровывает всё сообщение.

Так ломали настоящие шифры: в телеграммах были стандартные шапки, приветствия и подписи. Британцы называли такие догадки «шпаргалками» (crib).

Однобайтовый ключ

Если весь текст зашифрован одним и тем же байтом, вариантов всего 256. Утилита пробует их все и сортирует по тому, насколько результат похож на текст. Это классическая разминка в задачах по криптографии.

Частые вопросы

Что такое XOR?

Исключающее «или»: бит результата равен 1, если биты на входе разные, и 0, если одинаковые. Единица в ключе переворачивает бит данных, ноль оставляет как есть. Подробно — в уроке об XOR и одноразовом блокноте.

Надёжен ли XOR-шифр?

С коротким повторяющимся ключом — нет: его ломают по известному куску текста или по частотам. С ключом из настоящих случайных байтов длиной во всё сообщение, который используется один раз, это одноразовый блокнот, и его взломать невозможно. Для обычной жизни есть шифрование AES по паролю.

Почему в результате появились знаки «�»?

Байты после XOR не складываются в правильный UTF-8: ключ не тот или данные двоичные. Переключите вывод на hex.

Куда уходят мои данные?

Никуда. Всё считается в браузере.