Uuencode y uudecode en línea
Pega texto o bytes en hex para codificarlos con uuencode, con o sin las líneas begin y end, o cambia a Decodificar y pega un bloque uuencode —de un correo antiguo, un mensaje de Usenet o un archivo shell— para recuperar su contenido.
Funciona en tu navegador: nada de lo que escribes se envía a ningún sitio.
Cómo se usa
- Elige Codificar o Decodificar.
- Para codificar, escribe un texto o elige «Bytes como: Bytes en hex» y pega el hex. Deja Añadir líneas begin/end para un bloque completo (begin 644 file.txt … end), o desactívalo para obtener solo las líneas de datos.
- Para decodificar, pega el bloque. Se ignora el texto antes de begin y después de end, así que puedes pegar el mensaje entero.
Cómo funciona
Cada grupo de 3 bytes (24 bits) se divide en cuatro valores de 6 bits. Cada valor v se escribe con el carácter de código 32 + v, salvo el 0, que se escribe como acento grave `. Una línea empieza con un carácter de longitud (32 + número de bytes) y lleva como máximo 45 bytes, es decir, 60 caracteres de datos. Un último grupo incompleto se rellena con bytes cero; el carácter de longitud indica al decodificador cuántos bytes son reales.
Ejemplo
El texto Cat son los bytes 43 61 74:
- en bits: 010000 110110 000101 110100 = 16, 54, 5, 52;
- sumando 32: 48, 86, 37, 84 = 0 V % T;
- la línea lleva 3 bytes, así que empieza con 32 + 3 = 35 = #.
El bloque completo es:
begin 644 file.txt
#0V%T
`
end
Consejos
- Si la decodificación falla, comprueba que el bloque no se haya reajustado: cada línea debe empezar con su carácter de longitud.
- El 644 de la línea begin son los permisos Unix del archivo; aquí se ignoran, igual que el nombre.
- Para trabajos nuevos, Base64 tiene mucho más soporte que uuencode.
Preguntas frecuentes
¿Qué es uuencode?
La codificación Unix-to-Unix, una forma de enviar archivos binarios por canales que solo transportan texto, como el correo de los primeros tiempos y Usenet. Cada 3 bytes se convierten en 4 caracteres imprimibles, cada línea lleva hasta 45 bytes y el bloque va entre una línea begin (permisos y nombre de archivo) y una línea end.
¿Por qué unos archivos usan espacios y otros acentos graves?
Al principio el valor 0 se escribía como espacio (código 32). Los sistemas de correo solían borrar los espacios al final de las líneas, así que codificadores posteriores, como GNU sharutils, escriben un acento grave ` en su lugar. El decodificador acepta ambos: resta 32 al código y se queda con los 6 bits bajos.
¿Qué indica el primer carácter de cada línea?
El número de bytes de esa línea más 32. M significa 45 bytes (77 − 32), la línea completa habitual; la última línea, más corta, empieza por otra letra, y antes de end va una línea con solo ` (cero bytes).
¿Decodifica bloques begin-base64?
No. uuencode -m escribe Base64 normal entre begin-base64 y ====, así que decodifica su contenido con un decodificador Base64.