Escape DN LDAP
Smith, John pasa a Smith\, John: la coma queda dentro del nombre y no parte el nombre distinguido. Signos más, comillas, barras invertidas, ángulos y punto y coma reciben el mismo trato RFC 4514, y la decodificación lo deshace. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Smith, John
- Modo de cálculo
- Encode
- Resultado
- Smith\, John
- Codificación
- ldap_dn_rfc4514
- Longitud de entrada
- 11
- Longitud de salida
- 12
Este escape de DN LDAP convierte un valor de atributo plano a la forma escapada que exige RFC 4514 para la representación textual de nombres distinguidos, y revierte el mismo mapeo cuando pega un componente escapado de vuelta a caracteres ordinarios. La codificación reescribe comas, signos más, comillas dobles, barras invertidas, corchetes angulares y punto y coma para que un common name, una unidad organizativa o un fragmento de filtro armado a mano pueda vivir dentro de un RDN sin partir el DN circundante. Los signos de número al inicio y los espacios ASCII iniciales o finales también reciben una barra invertida para que los servidores de directorio no los traten como marcadores hexadecimales o relleno insignificante. La decodificación acepta tanto la forma de carácter especial como pares hexadecimales de dos dígitos, como barra-dos-C para una coma, y falla con claridad ante una barra final suelta, un dígito hex a medias o una letra de escape ilegal, de modo que los errores tipográficos no lleguen en silencio a DNs de bind ni a scripts de migración. La ruta es totalmente determinista: el mismo texto y modo producen siempre el mismo resultado, sin llamadas de red, sales aleatorias ni atajos dependientes de la fecha. Las comprobaciones pequeñas incluyen codificar un apellido con coma a forma barra-coma, y decodificar un apodo entre comillas con pares barra-comilla de vuelta a comillas reales.
Qué es el escape de componente DN RFC 4514 y qué devuelve esta herramienta
Un nombre distinguido LDAP es una secuencia de nombres distinguidos relativos, y cada RDN asocia un tipo de atributo con un valor de cadena. RFC 4514 define cómo se escribe ese valor en texto para que los analizadores recuperen los octetos originales sin confundir separadores estructurales con la carga útil. Una coma literal debe aparecer como par barra-coma, un más literal como barra-más, y la comilla doble, la barra invertida, menor que, mayor que y el punto y coma siguen el mismo patrón.
Un signo de número al inicio del valor se escapa para que no se lea como marcador de cadena hex, y un espacio ASCII al inicio o al final se escapa para que no se descarte como espacio en blanco insignificante. Los octetos de control por debajo del espacio se escriben como solidus invertido y dos dígitos hexadecimales en mayúsculas, la forma portable de los ejemplos de directorio y de muchos enlaces de lenguaje.
Esta página implementa ese conjunto en la ruta encode y el inverso en decode: la respuesta es solo la cadena del componente, sin inventar nombres de tipo de atributo ni recorrer un árbol multi-RDN. A diferencia de un analizador DN completo, esta landing no parte por comas sin escapar en RDNs, no valida esquemas de object-class y no abre un socket LDAP.
Dónde encajan el escape y el desescape de DN LDAP en el flujo del desarrollador
Los equipos de identidad y SSO codifican nombres para mostrar dinámicos antes de colocarlos dentro de un nombre distinguido relativo, de modo que una sola coma o comilla no rompa la representación textual circundante. Los autores de canalizaciones decodifican exportaciones densas en escapes desde directorios legados para que el código de aplicación trabaje con comas y espacios reales en lugar de secuencias literales barra-coma.
Los ingenieros de calidad generan pares encode y decode deterministas para pruebas de contrato, de modo que un middleware que afirme soporte RFC 4514 no pueda cambiar en silencio a una tabla de escape no estándar entre versiones. Los educadores usan la misma herramienta al enseñar la diferencia entre un nombre distinguido multi-RDN completo, un solo valor de atributo y el conjunto reducido de escapes que la especificación permite dentro de ese valor.
Qué puede hacer con ella
Valores de atributo RDN seguros
Escape apellidos, OUs y valores CN de texto libre para que comas, signos más, comillas y espacios de borde no rompan un nombre distinguido armado a mano o por plantilla.
Preguntas frecuentes
¿Cuánto cuesta el escape de DN LDAP?
Es gratis en su navegador en esta página.
¿Qué caracteres se escapan en encode?
Encode reescribe coma, más, comilla doble, barra invertida, menor que, mayor que y punto y coma con prefijo de barra; la almohadilla inicial y el espacio ASCII inicial o final del mismo modo; y los octetos de control U+0000–U+001F como hex de dos dígitos.
¿Qué ocurre si un escape está incompleto o es ilegal?
Se rechazan barras sueltas, pares hex a medias y letras de escape no RFC.
¿El resultado es determinista?
Sí. El mismo texto y modo producen siempre el mismo resultado, sin red, aleatoriedad ni comportamiento dependiente de la fecha.
¿Por qué se escapan los espacios al principio o al final de un valor?
Porque los servidores de directorio tratan un espacio inicial o final como relleno y pueden descartarlo, mientras que la barra invertida lo conserva. También se escapa una almohadilla al comienzo, para que no se lea como la marca de un valor hexadecimal.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/ldap-dn-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Smith, John"}'const res = await fetch("https://api.kit.forhosting.com/enc/ldap-dn-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Smith, John"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/ldap-dn-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Smith, John"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/ldap-dn-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Smith, John"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Smith, John"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/ldap-dn-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "Smith, John"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.ldap_dn_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Qué es el escape de componente DN RFC 4514 y qué devuelve esta herramienta
La respuesta JSON siempre incluye result para la cadena transformada, mode que refleja encode o decode, encoding fijado a ldap_dn_rfc4514, e input_length más output_length para que las pruebas puedan afirmar tamaños. Encode también informa escapes_applied y decode informa escapes_resolved para confirmar cuántos caracteres especiales o secuencias de escape se reescribieron. No hay omisión silenciosa parcial de una secuencia rota: o cada par con barra es legal bajo RFC 4514 o la solicitud falla con invalid_input.
Cómo se leen text y mode y cómo los resultados se mantienen reproducibles
Encode recorre la cadena por unidades de código UTF-16 y sustituye solo los caracteres que RFC 4514 exige escapar, dejando letras, dígitos y Unicode ordinario sin cambios para que los nombres legibles sigan legibles. Como la barra invertida se reescribe en el mismo paso de izquierda a derecha que comas y comillas, obtiene un único paso de escape coherente que coincide con las tablas habituales de herramientas de directorio para valores de atributo. Decode busca secuencias de solidus invertido: si los dos caracteres siguientes son dígitos hexadecimales, el par se trata como un octeto; en caso contrario el siguiente carácter debe ser uno de los especiales espacio, almohadilla, comilla, más, coma, punto y coma, menor que, mayor que, barra o igual. El campo de carga preferido es text, con alias input, value, s, payload, dn y component para que formularios, cadenas de consulta y clientes SDK reutilicen el mismo contrato sin renombrar columnas. Mode por defecto es encode y acepta decode de forma explícita; los alias op, direction y action mapean al mismo conmutador para scripts que ya usan esos nombres, y escape o unescape se aceptan como sinónimos. Una barra final incompleta, un solo dígito hex sin pareja o cualquier otra letra tras la barra lanza invalid_input con un mensaje que nombra el problema. El techo de longitud de cien mil caracteres mantiene predecible la memoria del Worker y cubre fragmentos multivalor largos, DNs de ejemplo y la mayoría de portapapeles. Combine la ejecución gratuita en el navegador en esta página con la API de pago cuando necesite el mismo mapeo dentro de una canalización automatizada sin reimplementar tablas RFC 4514. Las entradas inválidas devuelven invalid_input y no se cobran, lo que mantiene barata la validación mientras las transformaciones exitosas tienen un precio fijo por ítem de $0.002.
Dónde encajan el escape y el desescape de DN LDAP en el flujo del desarrollador
En esta página el trabajo se ejecuta por completo en su navegador; a través de la API cada consulta exitosa cuesta $0.002, la validación fallida no se cobra y no se almacena nada tras devolver la respuesta. Esa división—exploración interactiva gratuita y una API idéntica de pago—coincide con el resto del catálogo KIT de nivel A y le permite pasar de una demo de aula a una canalización automatizada sin cambiar el resultado escapado. Combínelo con percent-encoding de URL, ayudantes de cadena JSON o comillas de argumentos de shell cuando necesite transformaciones de texto más amplias, y con otros endpoints de codificación cuando construya un pequeño laboratorio de herramientas gratuitas y deterministas para CI y documentación.
Casos de integración
Limpieza de LDIF y migraciones
Decodifique escapes RFC 4514 desde exportaciones, logs o archivos LDIF golden de vuelta a Unicode plano para diffs legibles y código de aplicación.
Pares deterministas en CI
Genere pares encode y decode reproducibles para pruebas unitarias, contratos de middleware de directorio y herramientas que deben coincidir con las tablas RFC 4514.
Preguntas técnicas
¿Qué modos se admiten?
mode=encode (predeterminado) convierte texto plano en escapes de componente DN RFC 4514. mode=decode convierte esos escapes de vuelta en caracteres.