ИНСТР-PUNYCODERFC 3492 / IDNA 2008Pure JSревизия 2026-05-07

Punycode конвертер

Конвертация .рф / IDN доменов в Punycode (xn--) и обратно. RFC 3492 — алгоритм для DNS-совместимости кириллицы с DNS.

⏱ работает в браузере · без регистрации
Инструмент · ИНСТР-PUNYCODE|real-time
calcal.ru / punycode-konverter-idn-domeny
Загрузка инструмента…
2
Направления
RFC
3492 / 5891
100+
IDN зон в мире
0
Запросов к серверу

Что такое Punycode

Punycode (RFC 3492, 2003) — алгоритм для кодирования любых Unicode-строк в подмножество ASCII. Создан специально для DNS, который изначально работал только с латинскими буквами, цифрами и дефисом. Punycode позволил появиться интернационализированным доменам (IDN) — президент.рф, 日本.jp, café.fr.

Префикс xn-- перед именем сообщает: «дальше Punycode». Полный пример: президент.рф в DNS хранится как xn--d1abbgf6aiiy.xn--p1ai. Браузер автоматически декодирует обратно в кириллицу при отображении в URL bar (если домен безопасный).

Как работает алгоритм

Punycode — это bootstring-кодирование, оптимизированное для коротких строк. Идея:

  1. Сначала ASCII. Все ASCII-символы из исходной строки выводятся как есть.
  2. Разделитель. Дефис (-) разделяет ASCII-часть от закодированной non-ASCII.
  3. Numeric encoding. Non-ASCII символы кодируются последовательностью цифр в base-36, представляющих смещения и порядок вставки в результат.
  4. Адаптивная компрессия. Чем чаще символ — тем короче его код. Для русских доменов кириллица «компрессируется» эффективнее, чем для смеси языков.

Декодирование — обратный процесс: восстановление позиций символов из последовательности цифр. Алгоритм симметричен, без потерь.

Punycode is an instance of a more general algorithm called Bootstring, which allows strings composed from a small set of "basic" code points to uniquely represent any string of code points drawn from a larger set.RFC 3492 — A Bootstring Encoding of Unicode for IDN

Когда нужен Punycode

  • Регистрация .рф домена. Регистратор требует ввести домен в Punycode — нужен конвертер.
  • SMTP / email. Email-серверы могут не поддерживать Unicode в домене — нужен xn-- вариант.
  • SSL-сертификаты. Let's Encrypt требует Punycode-форму домена в SAN.
  • DNS-хостинг. Cloudflare, Yandex DNS — управление через xn--, но в UI показывают кириллицу.
  • WHOIS-запросы. WHOIS-серверы работают с ASCII — нужен Punycode.
  • Логирование / аналитика. Часто показывает домены в Punycode — нужен декодер для понимания.

Homograph attacks

Главная проблема IDN — homograph attack. Множество символов в Unicode визуально идентичны латинским:

  • Кириллический а (U+0430) ≈ латинский a (U+0061)
  • Кириллический о (U+043E) ≈ латинский o (U+006F)
  • Кириллический е (U+0435) ≈ латинский e (U+0065)
  • Кириллический р (U+0440) ≈ латинский p (U+0070)

Регистрируется домен аpple.com с кириллической «а» (Punycode: xn--pple-43d.com) — визуально неотличим от apple.com. Жертва кликает на ссылку в фишинговом письме, видит «apple.com» в URL bar — и не подозревает подделку.

Защита:

  • Браузеры. Chrome, Firefox, Safari показывают Punycode для смешанных скриптов начиная с 2017 (Chrome 58+).
  • Регистраторы. Запрещают регистрацию доменов со смешанными скриптами (.рф = только кириллица).
  • Whitelists. Корпоративные системы проверяют исходящие письма — если ссылка ведёт на смешанный IDN, флагают.
  • Пользователь. Никогда не вводите пароль на странице, открытой по ссылке из письма. Используйте закладки, password manager — он не сработает на homograph-домене.
ИСТОЧНИКИ
  1. RFC 3492 — Punycode: A Bootstring encoding of Unicode for IDN. Adam M. Costello (IETF). datatracker.ietf.org/doc/html/rfc3492. 2003.
  2. RFC 5891 — IDNA 2008 Protocol. IETF. datatracker.ietf.org/doc/html/rfc5891. 2010.
  3. IDN Display Algorithm — Chromium. Google Chrome. chromium.org/developers/design-documents/idn-in-google-chrome. 2024.
ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

Punycode (RFC 3492) — алгоритм кодирования строк Unicode в подмножество ASCII (a-z, 0-9, дефис). Изначально DNS-серверы поддерживали только ASCII — нельзя было использовать кириллицу, китайский, арабский в доменных именах. Punycode решает: «президент.рф» кодируется в «xn--d1abbgf6aiiy.xn--p1ai» — это валидный ASCII, который понимают все DNS-серверы. Браузер отображает обратно как кириллицу.
Префикс xn-- (ACE prefix) перед каждой меткой домена сообщает: «эта метка закодирована Punycode». Без префикса парсер не различил бы обычный ASCII и закодированный Unicode. xn-- зарезервирован IANA — никакой нормальный домен не должен начинаться с xn--, иначе будет конфликт.
IDN (Internationalized Domain Names) — стандарт интернационализированных доменных имён (RFC 5891). Включает Punycode + правила нормализации (Nameprep / IDNA2008). Цель — позволить регистрировать домены на любых языках. Запущен в 2003. Сейчас 100+ ccTLD поддерживают IDN: .рф (Россия), .中国 (Китай), .ไทย (Таиланд), .مصر (Египет).
.ru — англоязычная зона России, домен пишется латиницей (yandex.ru). .рф — кириллическая зона России, домен пишется на русском (яндекс.рф). Технически .рф = xn--p1ai в Punycode. С 2010 года любой может зарегистрировать .рф через RU-CENTER, REG.RU и др. Минус — не все системы корректно отображают Punycode-имя в URL bar (показывают xn-- вместо кириллицы).
Технически — да (например «test.рф»), но регистраторы .рф запрещают латинские символы в имени для безопасности (homograph attack). В .ru — наоборот, кириллица запрещена. В международных TLD (.com, .org) разрешены обе раскладки, но регистраторы вводят anti-homograph правила: например, нельзя смешивать кириллический «а» (U+0430) и латинский «a» (U+0061) в одном имени.
Атака с использованием похожих символов из разных алфавитов. Пример: домен «аpple.com» (где «а» — кириллическая) визуально неотличим от «apple.com» (латинская «a»), но это РАЗНЫЕ домены. Злоумышленник регистрирует подделку, в Punycode это xn--pple-43d.com — но в URL bar браузера отображается как кириллица. Современные браузеры (Chrome, Firefox) показывают Punycode для подозрительных смешанных доменов.
Технически — да. Например, 🍕pizza.com → xn--pizza-3w8a.com. Но: ICANN запретил эмодзи в gTLD в 2017 для безопасности и читаемости. В ccTLD некоторые страны разрешают (например, .ws, .to). Регистрация эмодзи-доменов — нишевый рынок, в основном для брендинга и шуток.
Это разные стандарты для разных частей URL. Punycode — для домена (хоста). URL encoding (%XX) — для пути и параметров. Пример: https://яндекс.рф/поиск?q=кот → https://xn--d1acpjx3f.xn--p1ai/%D0%BF%D0%BE%D0%B8%D1%81%D0%BA?q=%D0%BA%D0%BE%D1%82. Домен в Punycode, остальное — в percent-encoding. Браузер делает обе операции автоматически.
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.

СМЕЖНЫЕ ИНСТРУМЕНТЫ

Похожие калькуляторы

15

MAC адрес — генератор и парсер

Генерация случайных MAC-адресов в форматах AA:BB:CC, AA-BB-CC, Cisco. Парсер с определением вендора по OUI.

/generator-mac-adresa-onlajn

Объединить PDF онлайн — без загрузки на сервер

Склейка PDF в браузере через pdf-lib. До 20 файлов, до 50 МБ каждый. Локально, без отправки на сервер (152-ФЗ).

/obyedinit-pdf-onlajn-besplatno

Сжать PDF онлайн — уменьшить размер локально

Сжатие PDF в браузере без потери качества. 3 уровня (object streams, удаление метаданных). До 50 МБ. Через pdf-lib, локально.

/szhat-pdf-onlajn-umenshit-razmer

Разделить PDF на страницы — извлечь нужные онлайн

Разделение PDF на страницы локально: каждая страница отдельным файлом, диапазон или группами. Через pdf-lib, без отправки на сервер.

/razdelit-pdf-na-stranicy-onlajn

JPG в PDF — конвертер с объединением

Конвертация JPG/PNG в PDF в браузере: до 30 картинок в один документ. Форматы A4/A3/Letter или подгонка под изображение.

/jpg-v-pdf-konverter

Повернуть страницы PDF онлайн

Поворот всех или указанных страниц PDF на 90/180/270° за миллисекунды. Lossless. Через pdf-lib, без отправки на сервер.

/povernut-pdf-stranitsy-onlajn

Водяной знак на PDF онлайн (кириллица)

Нанесение текстового знака («КОНФИДЕНЦИАЛЬНО», «ЧЕРНОВИК») на все страницы PDF. Поддержка русского текста через Canvas. 4 положения, регулировка прозрачности.

/dobavit-vodyanoj-znak-na-pdf

Нумерация страниц PDF онлайн

Проставьте номера страниц PDF в браузере: 4 формата, 6 положений, пропуск титульной, кастомный старт. Поддержка кириллицы. Через pdf-lib + Canvas.

/numerovat-stranitsy-pdf-onlajn

PDF в JPG / PNG — конвертер страниц

Рендеринг каждой страницы PDF в картинку через pdfjs-dist (Mozilla). 4 уровня качества: 96 / 150 / 300 DPI и lossless PNG. До 50 МБ.

/pdf-v-jpg-konverter-onlajn

Извлечь текст из PDF онлайн

Извлечение текста из PDF в браузере через pdfjs-dist (Mozilla). Plain text, с разделителями страниц или JSON. Файлы не уходят на сервер.

/extract-text-iz-pdf-onlajn

Сжать JPG до 100 КБ для документов

Сжатие JPG до точного размера в КБ (50, 100, 200, 500, 1000) через бинарный поиск quality. Госуслуги, ЕГЭ, банки. Через browser-image-compression.

/szhat-jpg-onlajn-do-100kb

Удалить EXIF из фото — GPS и метаданные

Удаление EXIF (геолокация, модель камеры, дата) из JPEG. Сначала показывает что внутри, потом удаляет. 152-ФЗ. В браузере, без отправки.

/udalit-exif-iz-foto-online

Изменить размер фото в пикселях

Изменение размера JPG/PNG/WebP с сохранением пропорций. 6 пресетов (Full HD, HD, 1080×1080, 9:16). Через Canvas API, без сервера.

/izmenit-razmer-foto-onlajn-px-mb

WebP в JPG / PNG — конвертер онлайн

Конвертация WebP → JPG / PNG в браузере. До 30 файлов одновременно. Через Canvas API, без сервера. Поддержка Госуслуг и старых форм.

/webp-v-jpg-png-konverter

Повернуть фото — точно по градусам

Поворот картинки на любой угол (90°/произвольный) с превью. Цвет фона для уголков при произвольных углах. JPG/PNG/WebP. Через Canvas.

/povernut-foto-onlajn-besplatno