Encoders & Utilities

Punycode Converter

Конвертує інтернаціоналізовані домени (IDN ↔ ASCII).

Domain or IDN Paste a domain in any script — we will convert to both Punycode (xn--…) and Unicode. Email-style user@host works too.
bücher.de
Unicode → ASCII
Unicode form
bücher.de
ASCII / Punycode form
xn--bcher-kva.de
Per-label breakdown
Unicode ASCII Scripts
bücher xn--bcher-kva Latin
de de Latin

Про цей інструмент

Punycode (RFC 3492) — це encoding, який DNS-система використовує, щоб представляти non-ASCII-символи в доменних іменах. Кирилична назва пример.рф стає xn--e1afmkfd.xn--p1ai у фактичних DNS-запитах; китайське 例え.テスト стає xn--r8jz45g.xn--zckzah. Переклад повністю двосторонній — вставте будь-яку форму, отримайте іншу. Наш інструмент обробляє одну label, повний домен або кілька доменів через пробіл за один прохід.

Encoding — частина стандарту IDNA (Internationalized Domain Names in Applications). Браузери, mail-сервери і TLS-бібліотеки роблять цю конверсію під капотом — але як тільки ви дебажите DNS, конфігуруєте firewall-правило або підписуєте SSL-сертифікат, зазвичай вам самим потрібна punycode-форма. Префікс xn-- — фіксований маркер, що каже «ця label punycode-encoded».

Коли використовувати цей інструмент

  • Інспекція підозрілого посилання. Phishing-кампанії маскують URL змішуванням скриптів — декодуйте будь-яке посилання, щоб побачити, чи раypal.com — це справді PayPal, чи кириличний look-alike (homograph-атака).
  • SSL-сертифікати для IDN-доменів. Більшість CA вимагають punycode-форму як SAN.
  • Firewall і DNS-конфіги. Роутери, BIND і більшість allow-list потребують ASCII-форму — human-friendly Unicode — для адресного бару браузера, не для config-файлу.
  • Email DNS-записи. SPF, DKIM і DMARC-записи всі посилаються на punycode-форму домену.

Про homograph (look-alike) атаки

У Unicode багато символів візуально нагадують латинські літери — кирилична а (U+0430) vs латинська a (U+0061), грецька ο vs латинська o. Punycode розкриває це миттєво: «легітимний» example.com, відрендерений із mixed-script символами, стає чимось на кшталт xn--exampe-9he.com у punycode. Якщо знайомий домен декодується в щось із префіксом xn--, підозрюйте homograph-spoofing.

Часті запитання

Що таке префікс xn--?

«ACE-prefix» — фіксований маркер, що ідентифікує DNS-label як punycode-encoded. Будь-яка частина домену, що починається з xn--, призначена декодуватись у Unicode перед показом людям. Префікс зарезервовано виключно для цієї цілі з IDNA-2003; на нього можна покластись для відрізнення справжніх Unicode-імен від випадкових збігів.

Чи захищає це мене від look-alike доменів?

Воно їх викриває. Коли ви вставляєте підозріле посилання, і punycode-форма починається з xn--, тоді як відображений текст виглядає чисто латинським, це homograph-атака — кирилиця, грецький або вірменський, замаскований під латиницю. Сучасні браузери самі показують punycode-форму при змішаних скриптах, але якщо є сумніви щодо отриманого URL, декодування тут дає однозначну відповідь.

Чому TLD іноді теж мають xn--?

Бо існують IDN TLD: .рф (Росія), .中国 (Китай), .укр (Україна), .한국 (Корея) і десятки інших. Кожен резолвиться в punycode-еквівалент (.xn--p1ai, .xn--fiqs8s, .xn--j1amh, .xn--3e0b707e). Коли домен використовує і IDN-label, і IDN-TLD, обидва сегменти починаються з xn--.

Чи можна використовувати mixed scripts у одній label?

Технічно так, але реєстри забороняють із міркувань безпеки. IDNA-правила ICANN і більшість реєстрів забороняють змішувати скрипти в одній label (наприклад, Latin + Cyrillic в одному слові), саме щоб подолати homograph-атаки. Punycode-encoder усе одно обробить рядок, але результуючий домен буде нереєстровний у жодного великого реєстратора. Завжди використовуйте один script на label.