Теория
Punycode позволяет записывать домены с нелатинскими буквами (кириллицей, арабским, иероглифами) в системе DNS, которая исторически понимает только ASCII. Кириллический домен «пример.рф» превращается в «xn--e1afmkfd.xn--p1ai» с префиксом \(xn--\).
Браузеры показывают человеку кириллический вид, а в DNS-запросы уходит punycode. Обратное преобразование восстанавливает исходные символы по алгоритму с кодовыми точками Unicode.
Важно: похожие по виду домены в punycode различаются (латинская «а» и кириллическая «а» — разные коды) — на этом строятся фишинговые атаки с омографами.
Пример с решением
- Условие. Как выглядит домен «пример.рф» в punycode?
- Формула. Каждая нелатинская часть кодируется с префиксом \(xn--\).
- Подстановка. «пример» → «xn--e1afmkfd», «рф» → «xn--p1ai».
- Вычисление. Части соединяются точкой.
- Ответ. «xn--e1afmkfd.xn--p1ai». Калькулятор с доменом пример.рф покажет эту запись; обратный режим вернёт кириллический вид.
Главное
- IDN-домены хранятся в DNS как punycode.
- Префикс каждой части — \(xn--\).
- Омографы — основа фишинга на похожих доменах.