Echa un vistazo a estos desde stackoverflow:
¿Cómo cifro / descifro un archivo binario de longitud arbitraria usando Python?
cifrar datos binarios en binarios y también descifrar
y este breve tutorial sobre el cifrado PyCrypto AES de archivos en Python con PyCrypto.
- ¿Cuáles son algunos buenos consejos para el autoaprendizaje?
- Cómo hacer que el agua destilada sea necesaria para una batería inversora en casa
- ¿Cómo funcionan las funciones printf () y scanf ()? ¿Cómo pueden imprimir / escanear los datos deseados?
- ¿Cuáles son algunos trucos geniales de hierba?
- Cómo comprar acciones de DMART desde su salida a bolsa
EDITAR:
código
import os, random
de Crypto.Cipher import AES
de Crypto.Hash import SHA256
cifrado def (clave, nombre de archivo):
chunk_size = 64 * 1024
output_file = filename + “. enc”
file_size = str (os.path.getsize (nombre de archivo)). zfill (16)
IV = ”
para i en rango (16):
IV + = chr (random.randint (0, 0xFF))
encryptor = AES.new (clave, AES.MODE_CBC, IV)
con abierto (nombre de archivo, ‘rb’) como archivo de entrada:
con open (output_file, ‘wb’) como outf:
outf.write (tamaño_archivo)
escritura externa (IV)
mientras cierto:
fragmento = inputfile.read (tamaño de fragmento)
si len (fragmento) == 0:
descanso
elif len (fragmento)% 16! = 0:
fragmento + = ” * (16 – len (fragmento)% 16)
outf.write (encryptor.encrypt (fragmento))
descifrar def (clave, nombre de archivo):
chunk_size = 64 * 1024
archivo_salida = nombre de archivo [: – 4]
con abierto (nombre de archivo, ‘rb’) como inf:
tamaño de archivo = largo (inf.read (16))
IV = inf.read (16)
descifrador = AES.new (clave, AES.MODE_CBC, IV)
con open (output_file, ‘wb’) como outf:
mientras cierto:
fragmento = inf.read (tamaño de fragmento)
si len (fragmento) == 0:
descanso
outf.write (decryptor.decrypt (fragmento))
outf.truncate (tamaño de archivo)
def getKey (contraseña):
hasher = SHA256.new (contraseña)
return hasher.digest ()
def main ():
choice = raw_input (“Seleccione uno de los siguientes \ n> 1. Cifrar \ n> 2. Descifrar \ n >>>”)
si la opción == “1”:
filename = raw_input (“Ingrese el nombre del archivo a cifrar >>”)
password = raw_input (“Ingrese la contraseña”)
cifrar (getKey (contraseña), nombre de archivo)
imprima “Listo! \ n% s ==>% s”% (nombre de archivo, nombre de archivo + “. enc”)
Elección elif == “2”:
filename = raw_input (“Archivo a descifrar>”)
contraseña = raw_input (“Contraseña:”)
descifrar (getKey (contraseña), nombre de archivo)
imprima “Hecho \ n% s ==>% s”% (nombre de archivo, nombre de archivo [: – 4])
más:
imprime “Sin opción seleccionada”
if __name__ == “__main__”:
principal()
EDITAR 2:
Ejecución del programa en una imagen.
Entonces,
No se puede abrir el archivo encriptado.
Archivo original eliminado.
Lo tengo de vuelta.