Cómo anonimizar documentos: redacción de datos personales bien hecha
Guía práctica para anonimizar documentos de texto: elimina nombres, emails, teléfonos, DNI, IBAN y tarjetas con regex y checksums, de forma irreversible y conforme al RGPD.
Los documentos son el lugar donde los datos personales se esconden a plena vista. Un solo contrato, una factura o un ticket de soporte exportado puede contener el nombre completo de un cliente, su email, teléfono, DNI, un IBAN y un número de tarjeta, repartidos por páginas, mezclados en texto libre y frecuentemente duplicados en cabeceras, pies y metadatos. Redactar con descuido equivale a filtrar datos; redactar solo lo visible deja copias enterradas en el archivo.
Esta guía explica cómo anonimizar documentos de texto correctamente: qué significa de verdad la redacción a nivel de bytes, por qué el uso de regex con validación por checksum supera al simple buscar-y-reemplazar, y por qué un recuadro negro sobre un PDF es uno de los errores más habituales —y más peligrosos— en protección de datos.
En resumen
- Anonimizar un documento significa destruir los datos personales que contiene —nombres, emails, teléfonos, DNI/NIE, IBAN, tarjetas— no ocultarlos detrás de un bloque visual.
- El método fiable tiene dos pasos: localizar los valores sensibles (IA más reglas de regex + checksum) y después eliminarlos de forma determinista del contenido textual.
- Un recuadro negro sobre un PDF no es redacción: el texto original permanece en el flujo de contenido del archivo y se puede copiar o extraer en segundos.
- Puedes anonimizar un documento ahora mismo sin necesidad de cuenta: sube el archivo, elige qué redactar y descarga una copia limpia.
Qué significa de verdad "anonimizar un documento"
Anonimizar no es difuminar, no es tapar, no es "parecer redactado". Para un documento, anonimizar significa encontrar cada dato personal y eliminarlo del contenido del archivo de modo que no pueda recuperarse mediante selección, copia, búsqueda ni extracción.
Dentro de esa frase se esconden dos tareas bien distintas:
- Localizar la información sensible: saber qué caracteres del documento corresponden a un nombre, un email o un IBAN.
- Eliminarlos: borrar esos caracteres y sustituirlos por una etiqueta fija (como
[REDACTADO]) o un bloque opaco.
Confundir estos dos pasos está en la raíz de casi todos los fallos de redacción. La localización se beneficia de la IA y del reconocimiento de patrones. La eliminación debe ser código determinista que opere sobre la capa de texto real, porque eso es lo que hace que el resultado sea reproducible, testeable e irreversible.
La trampa de la redacción visual: por qué los recuadros negros filtran datos
El error más habitual es tratar un documento como si fuera una página impresa. Alguien dibuja un recuadro negro sobre un nombre en un editor de PDF, exporta el archivo y da el trabajo por terminado. No es así.
Un PDF no es una imagen. Es un archivo estructurado con un flujo de contenido —los caracteres de texto reales, posicionados en la página— que queda por debajo de cualquier elemento que dibujes encima. Un recuadro negro es simplemente otro objeto superpuesto sobre ese flujo. El texto original sigue estando ahí. Cualquiera puede:
- Seleccionar y copiar el texto directamente a través del recuadro.
- Ejecutar una herramienta de extracción de texto (
pdftotext, una biblioteca de parseo o la opción "guardar como texto" del navegador) y leer todo. - Eliminar la capa de anotaciones en un editor para revelar el original.
Esto no es teórico. Escritos judiciales, informes redactados y conjuntos de datos "anonimizados" han filtrado nombres y cifras precisamente porque la redacción era cosmética. La misma trampa existe en los procesadores de texto: cambiar el color del texto a blanco, resaltar en negro o superponer una forma deja los caracteres completamente intactos en el archivo.
Una redacción real debe destruir el texto, no encerrarlo en una caja visual. Los caracteres tienen que eliminarse del flujo de contenido y reemplazarse, y la misma lógica aplica a las copias de ese dato que se esconden en los metadatos, comentarios, cambios realizados e imágenes en miniatura incrustadas.
Regex + checksum frente a buscar-y-reemplazar
Una vez que te comprometes a eliminar texto real, la siguiente pregunta es: ¿cómo encuentras todos los valores que merece la pena eliminar? Hay dos enfoques, y la diferencia es enorme.
Por qué buscar-y-reemplazar se queda corto
El simple buscar-y-reemplazar solo funciona con valores que ya conoces. Escribes "Juan García" y lo reemplazas. Pero los documentos están llenos de datos personales que no has enumerado: un número de teléfono que nunca registraste, un IBAN perteneciente a un tercero, un número de tarjeta que un cliente pegó en una nota. Buscar-y-reemplazar no puede detectar lo que nunca se le dijo que buscara, y genera falsos positivos en el momento en que un fragmento del término de búsqueda aparece de forma inocente en otro contexto.
Por qué regex con checksums gana
Los identificadores estructurados siguen formatos. Las expresiones regulares capturan esos formatos, y un checksum confirma que la coincidencia es real y no una cadena aleatoria:
- Emails → reconocimiento de patrones sobre la estructura
local@dominio.tld. - Números de teléfono → patrones según el país para formatos internacionales y nacionales.
- Documentos de identidad → formato más el algoritmo de carácter de control del país (por ejemplo, la verificación de la letra en el DNI/NIE español).
- IBAN → formato más la verificación ISO 7064 mod-97: reordenar, convertir letras a dígitos y comprobar que el resto es 1.
- Tarjetas de pago → formato más el algoritmo de Luhn, para que se redacte una tarjeta de 16 dígitos real, pero no una referencia de pedido de 16 dígitos cualquiera.
El checksum es lo que separa la redacción quirúrgica del ruido. Sin él, una regex marca cualquier número de 16 dígitos; con él, solo se eliminan las tarjetas genuinas. Esa precisión es la que hace que la redacción automatizada sea fiable a escala.
| Enfoque | ¿Detecta valores desconocidos? | Falsos positivos | Ideal para |
|---|---|---|---|
| Buscar y reemplazar | No — solo cadenas conocidas | Altos (coincidencias parciales) | Eliminación puntual de un nombre concreto y conocido |
| Solo regex | Sí, por formato | Moderados (cualquier cadena que coincida) | Texto poco estructurado donde los falsos positivos son tolerables |
| Regex + checksum | Sí, por formato y validez | Bajos | IBAN, tarjetas, DNI/NIE — cualquier cosa con dígito de control |
| IA / NER (para nombres) | Sí, por significado | Dependientes del contexto | Nombres, direcciones, organizaciones sin formato fijo |
La conclusión: usa regex + checksum para identificadores estructurados, e IA con reconocimiento de entidades para datos personales no estructurados como nombres y direcciones. Juntos cubren tanto lo predecible como lo impredecible.
Por qué la IA debe localizar pero no eliminar
Es tentador entregarle el documento completo a un modelo de lenguaje y pedirle que "devuelva la versión anonimizada". No lo hagas. La edición generativa es no determinista: ejecútala dos veces y puedes obtener dos resultados distintos, sin ninguna garantía de que se haya eliminado cada identificador, y con el riesgo real de que el modelo reescriba o invente texto adyacente sin avisar.
El patrón robusto separa responsabilidades:
- La IA localiza: el reconocimiento de entidades señala nombres, direcciones y organizaciones que no tienen un formato fijo.
- El código determinista elimina: regex + checksum y la edición directa del texto borran los caracteres exactos y los sustituyen por una etiqueta fija.
Así es exactamente como Medianonymizer aborda cada tipo de fichero: el modelo solo señala el dato sensible; el código simple y testeable se encarga de la destrucción. El resultado es preciso, auditable y el mismo cada vez que se ejecuta.
No olvides los metadatos
Un documento es mucho más que su cuerpo visible. Los datos personales se esconden habitualmente en lugares que una lectura rápida nunca alcanza:
- Propiedades del documento — autor, último modificador, empresa.
- Cambios realizados y comentarios — nombres y cifras antiguas conservados en el historial de revisiones.
- Contenido incrustado — miniaturas, archivos adjuntos, campos de formulario ocultos.
- Cabeceras y pies de página — el mismo nombre o referencia repetido en cada página.
Eliminar todo esto forma parte de una anonimización real. Borrar un nombre de la página tres mientras se deja en el campo "Autor" del archivo hace inútil todo el ejercicio. El postprocesado determinista debe limpiar metadatos e historial de revisiones junto con el cuerpo del texto.
¿El texto anonimizado es realmente irreversible?
Sí, si eliminas los caracteres del flujo de contenido y los sustituyes por una etiqueta fija o un bloque opaco, en lugar de superponer un marcador visual. No hay ninguna capa oculta que despegar, ninguna clave y ninguna forma de reconstruir el valor eliminado.
Esta es la diferencia entre anonimización y seudonimización. La seudonimización cambia los identificadores por tokens reversibles; con la tabla de correspondencias, los datos pueden restaurarse. La anonimización elimina los datos definitivamente, que es lo que saca un documento del ámbito de normativas como el RGPD. Si necesitas la distinción en detalle, consulta anonimización frente a seudonimización. Para las organizaciones que quieren estandarizar esto a nivel de equipo, consulta anonimización documental para el RGPD en empresas.
Una lista de comprobación práctica
Antes de considerar anonimizado un documento, confirma:
- Cada nombre, email, teléfono, DNI/NIE, IBAN y tarjeta tiene su redacción correspondiente.
- Las redacciones eliminan los caracteres de la capa de texto: no son recuadros visuales superpuestos.
- Los identificadores estructurados se validaron con checksums (Luhn, mod-97) para evitar falsos positivos y omisiones.
- Los metadatos, comentarios y cambios realizados se eliminaron, no solo el cuerpo visible.
- Puedes extraer texto del resultado y no encontrar ninguno de los datos personales originales.
- El resultado fue revisado: detección automática más una comprobación humana.
Casos de uso habituales
- Contratos y facturas — eliminar los datos personales de las partes antes de compartir o archivar.
- Exportaciones de soporte y tickets — depurar los datos personales de clientes antes de analítica o entrenamiento de modelos.
- Revelación legal — producir documentos donde la redacción resista realmente a la extracción.
- Archivos de cumplimiento — almacenar registros con los datos personales eliminados para satisfacer las reglas de minimización y retención. El mismo principio de irreversibilidad aplica a otros tipos de fichero: consulta mejores prácticas para la anonimización irreversible y auditable.
Anonimiza tu documento ahora
No necesitas construir este pipeline por tu cuenta. Sube un documento, dile al asistente qué eliminar y descarga una copia limpia donde cada nombre, email, teléfono, DNI, IBAN y tarjeta queda destruido en el propio texto, de forma irreversible y con los metadatos eliminados.
Preguntas frecuentes
- ¿Por qué no basta con dibujar un recuadro negro sobre el texto en un PDF?
- Un recuadro negro es una capa visual superpuesta sobre la página. El texto original sigue estando en el flujo de contenido del PDF, así que cualquiera puede seleccionarlo, copiarlo o extraerlo con un script. Una redacción real elimina los caracteres del archivo, no se limita a taparlos.
- ¿Qué diferencia hay entre regex y buscar-y-reemplazar para redactar?
- Buscar-y-reemplazar solo detecta valores que ya conoces de antemano. Regex con validación por checksum encuentra datos personales estructurados que no habías visto antes: cualquier IBAN, tarjeta o número de identidad que coincida con el formato y supere su dígito de control, así que detectas información que ni sabías que estaba ahí.
- ¿El texto anonimizado es reversible?
- No, si eliminas los caracteres del flujo de contenido y los sustituyes por una etiqueta fija o un bloque opaco. No hay ninguna capa oculta ni ninguna clave. Esa irreversibilidad es precisamente lo que saca un documento del ámbito de normativas como el RGPD.