Codificador PEM Base64
Guarde texto como se guardan certificados y claves: Base64 estándar en líneas de 64 caracteres entre las marcas -----BEGIN CERTIFICATE----- y -----END CERTIFICATE-----, o desenvuelva un bloque PEM para recuperar el texto original. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Etiqueta
- CERTIFICATE
- Modo de cálculo
- Encode
- Longitud de línea
- 64
- Bytes
- 205
Privacy-Enhanced Mail (PEM) es el envoltorio de texto en el que casi todo certificado, clave privada y clave pública sigue viajando: un cuerpo Base64 plegado en líneas de sesenta y cuatro caracteres entre marcadores coincidentes -----BEGIN LABEL----- y -----END LABEL-----. Los desarrolladores pegan estos bloques en configuraciones, secretos de CI, secretos TLS de Kubernetes y registros ACME; el personal de soporte reenvuelve un blob Base64 continuo para que OpenSSL lo acepte; los formadores muestran cómo una cabecera CERTIFICATE se diferencia de PRIVATE KEY sin instalar un kit criptográfico completo.
Codifique texto en un bloque PEM con líneas de 64 caracteres
Si omite label, el motor usa CERTIFICATE, que coincide con la intención de búsqueda más habitual para pegados de certificados; otras etiquetas frecuentes son PRIVATE KEY, RSA PRIVATE KEY, PUBLIC KEY y CERTIFICATE REQUEST.
El motor serializa la cadena como bytes UTF-8, mapea esos bytes al alfabeto Base64 estándar con relleno de iguales, pliega el Base64 continuo en líneas de exactamente sesenta y cuatro caracteres (con una línea final más corta si hace falta) y envuelve el cuerpo entre -----BEGIN LABEL----- y -----END LABEL----- usando la misma etiqueta en ambos lados. Las cargas vacías son legales: obtiene un PEM bien formado con cuerpo vacío y cabeceras coincidentes, útil para probar analizadores.
El texto multilingüe y la puntuación dan ida y vuelta porque el camino es UTF-8 completo, no un atajo Latin-1.
Decodifique un bloque PEM y gestione la entrada no válida con seguridad
Fije mode en decode y coloque un bloque PEM completo en text, incluidas las líneas BEGIN y END. Se tolera el espacio en blanco inicial y final alrededor del bloque para que los pegados multilínea de tickets y documentación sigan funcionando. El motor localiza la primera cabecera -----BEGIN LABEL-----, lee la etiqueta, encuentra el pie -----END LABEL----- coincidente y rechaza la petición si falta el pie, si la etiqueta END no coincide con BEGIN, o si aparece un límite de encapsulación inesperado dentro del cuerpo.
Las líneas del cuerpo se recortan y se unen; se eliminan espacios, tabuladores y saltos de línea dentro de la región Base64, y luego se valida el alfabeto continuo con las mismas reglas del Base64 estándar: caracteres ilegales, rellenos en medio, más de dos signos de igual de relleno, o una longitud cuyo módulo cuatro sea uno fallan con un mensaje explícito.
Prefiera esta capacidad cuando la intención de búsqueda sea el encuadre PEM—cabeceras más líneas de sesenta y cuatro caracteres—y no el Base64 crudo sin encapsulación ni alfabetos URL-safe de cookies que pertenecen a codificadores hermanos.
Usos habituales de los bloques PEM y sus límites
Use la herramienta gratuita PEM Base64 en el navegador para demostraciones en clase, guías de soporte y reenvueltos puntuales de un certificado pegado sin instalar OpenSSL. Un flujo típico codifica un secreto corto de configuración como PEM etiquetado para almacenarlo en un sistema de tickets y luego lo decodifica en el servicio receptor con mode decode, afirmando que bytes y label coinciden con el original.
Otro flujo normaliza un cuerpo de certificado Base64 continuo que llegó sin saltos de línea: encode no es obligatorio si ya tiene PEM, pero decode acepta cuerpos plegados o sin plegar siempre que existan las cabeceras BEGIN y END, y puede volver a codificar tras inspeccionar result si necesita de nuevo el plegado canónico de sesenta y cuatro caracteres.
Combine este extremo con herramientas de Base64 plano cuando una canalización deba tratar tanto tokens sin marco como claves envueltas en PEM, pero mantenga las landings separadas para que cada página coincida con una sola intención de búsqueda—codificador pem base64 frente a texto a base64.
Qué puede hacer con ella
Normalización de pegados de certificados y claves
Vuelva a envolver cargas Base64 continuas o en claro en líneas PEM de 64 caracteres con etiquetas BEGIN/END coincidentes para que OpenSSL, secretos de Kubernetes y servidores web acepten el pegado.
Preguntas frecuentes
¿Cómo codifico texto como PEM Base64?
El campo result es un bloque PEM multilínea con líneas Base64 de 64 caracteres.
¿Cómo decodifico un bloque PEM?
Envíe mode decode y coloque el PEM completo (incluidas las líneas BEGIN/END) en text.
¿Qué longitud de línea usa el PEM aquí?
Las líneas del cuerpo se pliegan a sesenta y cuatro caracteres, la longitud clásica del PEM en certificados y claves.
¿Es gratuito el codificador PEM Base64?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Qué ocurre si el PEM no es válido?
El mensaje describe el problema; la petición no se cobra.
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/base64-pem \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, PEM!"}'const res = await fetch("https://api.kit.forhosting.com/enc/base64-pem", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, PEM!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base64-pem",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, PEM!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base64-pem", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, PEM!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, PEM!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base64-pem", 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": "Hello, PEM!"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base64_pem",
"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
Este codificador PEM Base64 convierte en ambos sentidos con un solo campo mode: encode transforma texto UTF-8 en un bloque PEM con plegado clásico de líneas; decode elimina las cabeceras y recupera la carga UTF-8; y rechaza el encuadre malformado, las etiquetas que no coinciden y el Base64 ilegal con un error invalid_input claro. La ruta gratuita del navegador y la API prepago comparten el mismo algoritmo puro, de modo que deberes, documentación y canalizaciones nunca discrepan por un salto de línea. El éxito por API cuesta $0.002 por elemento; los fallos de validación no se cobran.
Codifique texto en un bloque PEM con líneas de 64 caracteres
Envíe un cuerpo JSON con el campo de cadena obligatorio text fijado a la carga UTF-8 en claro que desee enviar como PEM, deje mode en su valor predeterminado encode o fíjelo a encode de forma explícita, y opcionalmente establezca label con la cadena de tipo que debe aparecer en los límites de encapsulación. Se aceptan los alias opcionales input, value, s, pem y payload para el campo text, y direction, op y action para mode, de modo que clientes generados y nombres de formulario antiguos sigan funcionando. La respuesta siempre incluye result con la cadena PEM multilínea completa, mode encode, label que refleja el tipo resuelto, line_length fijo en sesenta y cuatro, base64_body como el Base64 continuo sin cabeceras ni saltos de línea para clientes que necesitan ambas formas, y bytes igual a la longitud UTF-8 antes de codificar para que las pruebas puedan afirmar el tamaño de la carga.
Decodifique un bloque PEM y gestione la entrada no válida con seguridad
Si también envía label al decodificar, debe ser igual a la etiqueta del bloque; una discrepancia falla con invalid_input para que la automatización pueda afirmar que recibió PRIVATE KEY cuando por error se pegó un CERTIFICATE. Tras validar el alfabeto, los bytes se decodifican como UTF-8 con un decodificador fatal, de modo que blobs DER no textuales que no sean Unicode válido también lanzan invalid_input en lugar de emitir caracteres de sustitución que corromperían los registros. Una decodificación correcta devuelve result como la cadena recuperada, mode decode, label de las cabeceras, line_length sesenta y cuatro, base64_body como el cuerpo continuo, y bytes como la longitud UTF-8 decodificada. Los fallos de validación no se cobran en la API prepago, así que sondear un pegado sospechoso es barato para operadores y seguro para usuarios finales.
Uso de la API, precios, flujos de trabajo y límites prácticos
Emplee la API prepago del KIT cuando un backend, una función serverless o un SDK necesiten el mismo paso de codificación o decodificación con saldo a $0.002 por elemento correcto; la validación fallida nunca consume saldo tras el rechazo del motor. Los autores que publican SDK pueden mapear el campo result directamente a un botón de copiar, mientras que label y line_length hacen que los ejemplos OpenAPI se expliquen solos a quienes solo conocen la forma clásica de un archivo de certificado.
Casos de integración
Comprobaciones golden de CI y documentación
Fije fixtures de encode y decode para muestras CERTIFICATE y PRIVATE KEY de modo que la documentación y las pruebas de integración continua fallen enseguida si el encuadre PEM se desvía.
Soporte y formación
Agentes y estudiantes convierten texto a PEM Base64 y de vuelta en el widget gratuito del navegador, con errores invalid_input claros cuando faltan cabeceras o las etiquetas no coinciden.