0Pricing
Cryptology Academy · Lección

Cifrado práctico de archivos con AES

Utilice OpenSSL y Python para cifrar y descifrar archivos reales con AES.

Cifrado práctico de archivos con AES es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Bienvenida

La teoría se une a la práctica. En esta lección cifrará y descifrará archivos reales usando AES-GCM en Python, el modo recomendado para el cifrado autenticado.

¿Por qué AES-GCM?

AES-GCM proporciona cifrado autenticado con datos asociados (AEAD). Cifra y, además, produce una etiqueta de autenticación de 16 bytes. Cualquier manipulación se detecta antes del descifrado.

Componentes de AES-GCM

Entradas: clave de 32 bytes, nonce aleatorio de 12 bytes, texto plano y datos asociados opcionales (AAD). Salidas: texto cifrado y etiqueta de autenticación de 16 bytes. El nonce debe ser único para cada cifrado.

Instalación de la biblioteca cryptography

pip install cryptography La biblioteca cryptography para Python, desarrollada por PyCA, es la biblioteca criptográfica recomendada. Es un contenedor de OpenSSL y proporciona tanto recetas de alto nivel como primitivas hazmat de bajo nivel.

Cifrado AES-GCM en Python

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(bit_length=256) nonce = os.urandom(12) aad = b'file_version_1' aesgcm = AESGCM(key) ciphertext = aesgcm.encrypt(nonce, plaintext, aad)

Descifrado AES-GCM en Python

try: plaintext = aesgcm.decrypt(nonce, ciphertext, aad) except Exception: print('Decryption failed — tampered or wrong key') Si falla la verificación de la etiqueta, decrypt() lanza una excepción. Nunca ignore esta excepción.

Flujo de trabajo para cifrar archivos

with open('input.bin', 'rb') as f: plaintext = f.read() ciphertext_with_tag = aesgcm.encrypt(nonce, plaintext, None) # Store: nonce (12 bytes) + ciphertext_with_tag with open('output.enc', 'wb') as f: f.write(nonce + ciphertext_with_tag)

Flujo de trabajo para descifrar archivos

with open('output.enc', 'rb') as f: data = f.read() nonce = data[:12] ciphertext_with_tag = data[12:] plaintext = aesgcm.decrypt(nonce, ciphertext_with_tag, None)

Gestión de nonces

Un nonce aleatorio de 12 bytes con AES-GCM es seguro para hasta 2^32 cifrados con la misma clave, antes de que la probabilidad de colisión deje de ser despreciable. Después, cambie la clave.

Uso de OpenSSL desde la línea de comandos

# Encrypt: openssl enc -aes-256-cbc -pbkdf2 -in plain.txt -out encrypted.bin # Decrypt: openssl enc -d -aes-256-cbc -pbkdf2 -in encrypted.bin -out plain.txt Nota: modo CBC; añada la opción -GCM para obtener cifrado autenticado en versiones más recientes de OpenSSL.

Prácticas recomendadas para almacenar claves

Nunca incluya claves directamente en el código fuente. Use variables de entorno, AWS KMS, HashiCorp Vault o el llavero del sistema operativo. Cambie las claves periódicamente. Revoque las claves cuando el personal deje la organización.

Comprobación rápida

¿Qué ocurre cuando AES-GCM detecta que el texto cifrado ha sido manipulado?

Repaso

Ahora puede cifrar archivos con AES-GCM en Python. A continuación, pasaremos al cifrado asimétrico y aprenderemos RSA desde sus fundamentos.

Preguntas frecuentes

¿La lección «Cifrado práctico de archivos con AES» es gratis?

Sí — el texto completo de «Cifrado práctico de archivos con AES» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Cifrado práctico de archivos con AES»?

Utilice OpenSSL y Python para cifrar y descifrar archivos reales con AES. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Cifrado práctico de archivos con AES»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conceptos del cifrado simétrico
  2. Estructura de AES: rondas y matriz de estado
  3. Expansión de claves y tamaños de clave de AES
  4. Cifrado práctico de archivos con AES
← Volver a Cryptology Academy