Encoders & Utilities

Punycode Converter

Converteer geïnternationaliseerde domeinnamen (IDN ↔ ASCII).

Over deze tool

Punycode (RFC 3492) is de codering die het DNS-systeem gebruikt om niet-ASCII-tekens in domeinnamen te representeren. De Cyrillische naam пример.рф wordt xn--e1afmkfd.xn--p1ai in werkelijke DNS-queries; een Chinese 例え.テスト wordt xn--r8jz45g.xn--zckzah. De vertaling is volledig bidirectioneel — plak een van beide vormen, krijg de andere. Onze tool verwerkt één label, een volledig domein of meerdere door spaties gescheiden domeinen in één keer.

De codering is onderdeel van de IDNA-standaard (Internationalized Domain Names in Applications). Browsers, mailservers en TLS-bibliotheken doen deze conversie onder de motorkap — maar zodra u een DNS-probleem debugt, een firewall-regel configureert of een SSL-certificaat ondertekent, heeft u meestal zelf de punycode-vorm nodig. De xn---prefix is een vaste markering die zegt "dit label is punycode-gecodeerd".

Wanneer gebruikt u deze tool

  • Een verdachte link inspecteren. Phishing-campagnes verbergen URL's door scripts te mengen — decodeer elke link om te zien of раypal.com werkelijk PayPal is of een Cyrillische lookalike (de homograph-aanval).
  • SSL-certificaten voor IDN-domeinen. De meeste CA's vereisen de punycode-vorm als SAN.
  • Firewall- en DNS-configuraties. Routers, BIND en de meeste allow-lijsten hebben de ASCII-vorm nodig — de mensvriendelijke Unicode is voor de browser-adresbalk, niet het config-bestand.
  • E-mail-DNS-records. SPF-, DKIM- en DMARC-records verwijzen allemaal naar de punycode-vorm van het domein.

Over homograph (lookalike)-aanvallen

Unicode heeft veel tekens die visueel op Latijnse letters lijken — Cyrillische а (U+0430) vs Latijnse a (U+0061), Griekse ο vs Latijnse o. Punycode onthult deze direct: een "legitieme" example.com gerenderd met mixed-script tekens wordt iets als xn--exampe-9he.com in punycode. Als een bekend domein naar iets met een xn---prefix decodeert, verdenk homograph-spoofing.

Veelgestelde vragen

Wat is de xn--prefix?

De "ACE-prefix" — de vaste markering die een DNS-label als punycode-gecodeerd identificeert. Elk domeindeel dat begint met xn-- is bedoeld om naar Unicode te worden gedecodeerd voordat het aan mensen wordt getoond. De prefix is sinds IDNA-2003 exclusief voor dit doel gereserveerd; u kunt erop vertrouwen om echte Unicode-namen te onderscheiden van toevallige overeenkomsten.

Beschermt dit mij tegen lookalike-domeinen?

Het exposeert ze. Wanneer u een verdachte link plakt en de punycode-vorm begint met xn-- terwijl de getoonde tekst puur Latijns lijkt, is dat een homograph-aanval — Cyrillische, Griekse of Armeense tekens vermomd als Latijn. Moderne browsers tonen punycode-vorm zelf wanneer scripts zijn gemengd, maar als u twijfel heeft over een ontvangen URL, geeft het hier decoderen een definitief antwoord.

Waarom hebben TLD's soms ook xn--?

Omdat IDN-TLD's bestaan: .рф (Rusland), .中国 (China), .укр (Oekraïne), .한국 (Korea) en tientallen meer. Elk hiervan resolveert naar een punycode-equivalent (.xn--p1ai, .xn--fiqs8s, .xn--j1amh, .xn--3e0b707e). Wanneer een domein zowel een IDN-label als een IDN-TLD gebruikt, beginnen beide segmenten met xn--.

Kan ik gemengde scripts in één label gebruiken?

Technisch ja, maar registries verbieden het om beveiligingsredenen. ICANN's IDNA-regels en de meeste registries verbieden het mengen van scripts binnen één label (bijv. Latijn + Cyrillisch in hetzelfde woord), specifiek om homograph-aanvallen te verijdelen. De punycode-encoder zal de string nog steeds verwerken, maar het resulterende domein zou bij elke grote registrar onregistreerbaar zijn. Gebruik altijd één script per label.