Encoders & Utilities

Conversor Punycode

Convierte nombres de dominio internacionalizados (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.
café.fr
Unicode → ASCII
Unicode form
café.fr
ASCII / Punycode form
xn--caf-dma.fr
Per-label breakdown
Unicode ASCII Scripts
café xn--caf-dma Latin
fr fr Latin

Sobre esta herramienta

Punycode (RFC 3492) es la codificación que el sistema DNS usa para representar caracteres no ASCII en nombres de dominio. El nombre cirílico пример.рф pasa a ser xn--e1afmkfd.xn--p1ai en las consultas DNS reales; un chino 例え.テスト pasa a ser xn--r8jz45g.xn--zckzah. La traducción es totalmente bidireccional — pegue cualquiera de las dos formas, obtenga la otra. Nuestra herramienta gestiona una sola etiqueta, un dominio completo o varios dominios separados por espacios de una vez.

La codificación es parte del estándar IDNA (Internationalized Domain Names in Applications). Navegadores, servidores de correo y bibliotecas TLS hacen esta conversión bajo el capó — pero el momento en que depura un problema DNS, configura una regla de cortafuegos o firma un certificado SSL, normalmente necesita la forma punycode usted mismo. El prefijo xn-- es un marcador fijo que dice «esta etiqueta está codificada en punycode».

Cuándo utilizar esta herramienta

  • Inspeccionar un enlace sospechoso. Las campañas de phishing disfrazan URL mezclando escrituras — decodifique cualquier enlace para ver si раypal.com es realmente PayPal o una imitación en cirílico (ataque homográfico).
  • Certificados SSL para dominios IDN. La mayoría de CA requieren la forma punycode como SAN.
  • Configuraciones de cortafuegos y DNS. Routers, BIND y la mayoría de listas blancas necesitan la forma ASCII — el Unicode amigable es para la barra de direcciones del navegador, no para el archivo de configuración.
  • Registros DNS de correo. Los registros SPF, DKIM y DMARC referencian todos la forma punycode del dominio.

Sobre ataques homográficos (de imitación)

Unicode tiene muchos caracteres que se parecen visualmente a letras latinas — cirílico а (U+0430) vs latino a (U+0061), griego ο vs latino o. Punycode los revela al instante: un «legítimo» example.com renderizado con caracteres de scripts mixtos se convierte en algo como xn--exampe-9he.com en punycode. Si un dominio familiar decodifica a algo con un prefijo xn--, sospeche de spoofing homográfico.

Preguntas frecuentes

¿Qué es el prefijo xn--?

El «prefijo ACE» — el marcador fijo que identifica una etiqueta DNS como codificada en punycode. Cualquier parte de dominio que comience con xn-- está pensada para decodificarse a Unicode antes de mostrarse a humanos. El prefijo está reservado exclusivamente para este fin desde IDNA-2003; puede confiar en él para distinguir nombres Unicode reales de coincidencias accidentales.

¿Esto me protege de dominios de imitación?

Los expone. Cuando pega un enlace sospechoso y la forma punycode empieza por xn-- mientras el texto mostrado parece puramente latino, eso es un ataque homográfico — caracteres cirílicos, griegos o armenios disfrazados de latinos. Los navegadores modernos muestran la forma punycode ellos mismos cuando los scripts están mezclados, pero si tiene cualquier duda sobre una URL que recibió, decodificarla aquí da una respuesta definitiva.

¿Por qué los TLD a veces también tienen xn--?

Porque existen TLD IDN: .рф (Rusia), .中国 (China), .укр (Ucrania), .한국 (Corea) y docenas más. Cada uno resuelve a un equivalente punycode (.xn--p1ai, .xn--fiqs8s, .xn--j1amh, .xn--3e0b707e). Cuando un dominio usa tanto una etiqueta IDN como un TLD IDN, ambos segmentos empezarán por xn--.

¿Puedo usar scripts mixtos en una sola etiqueta?

Técnicamente sí, pero los registries lo prohíben por seguridad. Las reglas IDNA de ICANN y la mayoría de registries prohíben mezclar scripts dentro de una sola etiqueta (p. ej. latino + cirílico en la misma palabra), precisamente para frenar ataques homográficos. El codificador punycode aún procesará la cadena, pero el dominio resultante sería irregistrable en cualquier registrador importante. Use siempre un solo script por etiqueta.