Enmascarar datos sensibles es un paso necesario al trabajar con archivos estructurados como CSV y JSON en entornos de desarrollo, QA o analítica. Estos formatos suelen contener datos personales, confidenciales o sujetos a normativas, que no deben utilizarse sin protección en entornos no productivos.



Este artículo muestra cómo aplicar técnicas de enmascaramiento a estos formatos utilizando scripts de Python, específicamente sobre campos como nombres, correos electrónicos, SSNs (números de seguridad social) y tarjetas de crédito, conservando la estructura y la utilidad del archivo.



Enmascarar datos sensibles en archivos CSV



Los archivos CSV se utilizan frecuentemente para mover o preparar datos tabulares fuera de producción. Enmascarar información sensible en estos archivos implica modificar su contenido sin alterar los encabezados, los delimitadores ni la estructura general.



Campos comunes a enmascarar


  • name, email, phone_number

  • ssn, credit_card

  • zip_code, address



Técnicas comunes



Sustitución


df['name'] = ['User_' + str(i) for i in df.index]


Truncamiento


df['credit_card'] = df['credit_card'].apply(lambda x: 'XXXX-XXXX-XXXX-' + x[-4:]) 


Aleatorización


df['zip_code'] = [random.randint(10000, 99999) for _ in df.index] 



Script completo de enmascaramiento CSV



import pandas as pd
import random

df = pd.read_csv("input.csv")

df['name'] = ['User_' + str(i) for i in df.index]
df['ssn'] = df['ssn'].apply(lambda x: "***-**-" + x[-4:])
df['zip_code'] = [random.randint(10000, 99999) for _ in df.index]

df.to_csv("masked_output.csv", index=False)


Verifica siempre:


  • Que los encabezados y delimitadores se mantengan.

  • Que el archivo enmascarado sea legible por las herramientas que usas.

  • Que la salida no rompa ningún proceso posterior.



Enmascarar datos sensibles en archivos JSON



Los archivos JSON son estructuras jerárquicas que pueden contener múltiples niveles de profundidad, lo que requiere una lógica más flexible para aplicar enmascaramiento en campos específicos.


{
  "user": {
    "name": "Alice Smith",
    "email": "alice@example.com",
    "ssn": "123-45-6789"
  }
}


Script de enmascaramiento JSON


import json
import random

def mask_data(obj):
    if isinstance(obj, dict):
        for key in obj:
            if key == 'ssn':
                obj[key] = "***-**-" + obj[key][-4:]
            elif key == 'email':
                obj[key] = "masked@example.com"
            elif key == 'zip_code':
                obj[key] = str(random.randint(10000, 99999))
            else:
                mask_data(obj[key])
    elif isinstance(obj, list):
        for item in obj:
            mask_data(item)

with open("input.json", "r") as infile:
    data = json.load(infile)

mask_data(data)

with open("masked_output.json", "w") as outfile:
    json.dump(data, outfile, indent=2)


Consideraciones:


  • La función mask_data() recorre recursivamente el JSON y modifica solo las claves deseadas.

  • Es flexible para estructuras anidadas o listas de objetos.



Enmascaramiento en pipelines de desarrollo



Scripts como los anteriores se integran habitualmente en:


  • Flujos de preparación de datos para pruebas automatizadas

  • Generación de archivos anonimizados para equipos externos

  • Simulación realista de entradas para pruebas de API

  • Entrega de datasets de muestra para validación o demos


Aplicar enmascaramiento desde el inicio del pipeline permite que los equipos trabajen con datos útiles sin comprometer la privacidad ni la seguridad.



Automatiza el enmascaramiento de datos sensibles en toda tu organización



Gigantics ayuda a equipos de seguridad, ingeniería, QA y datos a detectar y enmascarar información sensible en cualquier entorno—aplicando reglas automatizadas para garantizar privacidad y cumplimiento normativo.


Tanto si tus datos se usan en desarrollo, testing, analítica o colaboración, Gigantics aplica enmascaramiento que preserva formatos y se adapta a tus workflows técnicos.


👉 Reserva una demo con Gigantics
Descubre cómo automatizar el enmascaramiento de datos sensibles, desde la fuente hasta el archivo final, manteniendo tus pipelines seguros y eficientes.