Proteger un PDF con contraseña
Algunos documentos no deberían abrirse para cualquiera que llegue a tener una copia del archivo. Esta API para proteger PDF con contraseña cifra un documento con la clave que elija, de modo que abrirlo siquiera, no solo editarlo, requiere conocer esa contraseña, y lo hace sin que tenga que tocar una herramienta de escritorio ni gestionar claves de cifrado por su cuenta.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Por qué una contraseña vence a confiar en que el enlace siga privado
Un archivo en una unidad compartida, un hilo de correo reenviado o un depósito de almacenamiento mal configurado es tan privado como todas las personas que alguna vez lo tocaron. Resúmenes de nómina, expedientes médicos, contratos firmados y estados financieros se filtran así con frecuencia, no por una brecha, sino por una copia que terminó donde no debía. Cifrar el PDF en sí cambia el modo de fallo: aunque el archivo llegue a las manos equivocadas, permanece ilegible sin la contraseña, una garantía sustancialmente más fuerte que el control de acceso de una carpeta.
Qué ocurre cuando la llama
Llama a POST /pdf/protect con su documento y la contraseña a aplicar, y recibe un task_id de inmediato mientras el cifrado corre de forma asíncrona. El resultado es un PDF cifrado con una contraseña de usuario estándar y ampliamente soportada: cualquier visor de PDF pedirá esa contraseña antes de renderizar una sola página, y sin ella el contenido no queda simplemente oculto detrás de un permiso, sino genuinamente cifrado a nivel de archivo.
Cómo funciona realmente el cifrado de PDF
El PDF soporta cifrado basado en contraseña desde sus primeras revisiones, usando algoritmos simétricos que revuelven los flujos de contenido del documento para que un visor no pueda renderizarlos sin derivar la clave de descifrado correcta a partir de la contraseña. Vale la pena ser preciso sobre qué protege: resguarda el archivo en reposo y en tránsito, pero su fortaleza real depende de la contraseña elegida, y una contraseña débil o adivinable debilita incluso un cifrado sólido. Este endpoint aplica el cifrado correctamente; elegir una contraseña fuerte sigue siendo su responsabilidad.
Dónde encaja en un flujo de trabajo
Añada este paso justo antes de que un documento sensible salga de su sistema: después de generar un informe, de finalizar un contrato o de compilar un estado de cuenta para un cliente. Encaja de forma natural junto a un paso de aplanado, ya que un documento suele finalizarse y bloquearse en la misma pasada antes de entregarse, y pertenece a cualquier lugar donde se envíen por correo o se entreguen fuera de un sistema controlado datos personales o financieros.
Entrega, precio y estado actual
Los resultados llegan por webhook firmado o mediante un enlace firmado válido durante 24 horas, y el documento de origen, la contraseña y la salida cifrada se eliminan tras la ventana de retención; nada de esto se usa jamás para entrenar un modelo. El precio es $0.042 por solicitud más $0.0025 por documento. Este endpoint está actualmente en despliegue y todavía no acepta trabajos en producción; estará disponible en breve, así que verifique el estado actual antes de integrarlo en un flujo productivo.
Qué puede hacer con ella
Bloquear un documento de nómina antes de enviarlo por correo
Cifre una carta de compensación o un resumen de nómina con una contraseña antes de enviarlo por correo, para que un mensaje mal dirigido o una copia reenviada no exponga el contenido.
Proteger estados financieros de clientes al entregarlos
Proteja con contraseña una factura o estado de cuenta generado antes de que llegue a la bandeja de un cliente, usando un esquema como un número de referencia conocido para que solo el destinatario previsto pueda abrirlo.
Asegurar documentos legales compartidos con asesores externos
Cifre contratos o escritos antes de que salgan de su sistema hacia un despacho externo o un regulador, garantizando que el archivo mismo lleve protección independiente de cómo se transmita.
Añadir un paso de protección a un flujo de informes automatizado
Después de que un trabajo nocturno compila un informe confidencial, cífrelo automáticamente antes de subirlo a una unidad compartida, para que el archivo nunca quede expuesto sin protección, ni siquiera brevemente.
Preguntas frecuentes
¿Cómo protejo un PDF con contraseña usando una API?
Llame a POST /pdf/protect con su documento y la contraseña a aplicar; recibe un task_id de inmediato, y el archivo cifrado se entrega a su webhook firmado o a un enlace firmado cuando está listo.
¿La API para proteger PDF con contraseña es gratis?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿La contraseña bloquea la edición, la apertura o ambas?
Esto aplica una contraseña de usuario, que controla la apertura misma del documento: sin ella, un visor de PDF no puede renderizar el contenido en absoluto, una restricción más fuerte que solo bloquear la edición o la impresión.
¿Qué tan fuerte es el cifrado?
Usa el cifrado estándar y ampliamente soportado del PDF, que es sólido a nivel de algoritmo; la fortaleza real de su protección sigue dependiendo de elegir una contraseña que no sea fácil de adivinar.
¿Puedo proteger muchos documentos a la vez con contraseñas distintas?
Sí. Cada solicitud es una tarea asíncrona independiente, así que puede enviar un lote con una contraseña distinta por documento y recoger cada archivo cifrado por webhook a medida que se completa.
¿La contraseña queda guardada en algún lugar después del proceso?
No. La contraseña, el documento de origen y la salida cifrada se eliminan tras la ventana de retención; no se conserva nada más de lo necesario para entregarle el resultado.
¿Este endpoint está disponible ahora mismo?
Está en despliegue y todavía no acepta trabajos en producción, con disponibilidad esperada en breve. Verifique el estado actual del endpoint antes de integrarlo en producción.
¿Qué pasa si olvido la contraseña después de cifrar un documento?
No hay forma de recuperar un documento cifrado sin su contraseña, ya que el cifrado es genuino; guarde un registro seguro de cualquier contraseña que aplique, o genérela a partir de algo que pueda reproducir de forma confiable.
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, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/pdf/protect \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/protect", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/protect",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/protect", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/protect", 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
{
"pdf": "https://ejemplo.com/documento.pdf"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.protect",
"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.
Límites
max_mb | 25 |
max_pages | 200 |
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. |
413 | input_too_large | El archivo supera el límite de tamaño. |