2010-05-30 38 views
6

¿Hay alguna forma de encriptar archivos (.zip, .doc, .exe, ... cualquier tipo de archivo) con Python?Cifrado de archivos con Python

He consultado un conjunto de bibliotecas de cifrado para Python, incluidas pycrypto y ezpycrypto, pero, por lo que veo, solo ofrecen el cifrado de cadenas.

+0

relacionadas: [Crear un archivo ZIP cifrado en Python] (http://stackoverflow.com/questions/17250/create-an-encrypted-zip-file-in-python) – miku

+7

En Python 2, las cadenas son realmente byte -cadenas, por lo que puede simplemente leer en el archivo como binario, encriptarlo, luego escribir como binario. –

+1

Ugh ... cómo es que no podía pensar eso. Gracias :) – Pinkie

Respuesta

1

Puede leer el archivo completo en una cadena, encriptarlo, escribir la cadena cifrada en un archivo nuevo. Si el archivo es demasiado grande, puede leer en trozos.

Cada vez que .read de un archivo, obtiene una cadena (en Python < 3.0).

2

En versiones de Python anteriores a la versión 3.0, read method de file object devolverá una cadena, proporcione esta cadena a la biblioteca de cifrado de su elección, la cadena resultante se puede escribir en un archivo.

Tenga en cuenta que en los sistemas operativos basados ​​en Windows, el modo predeterminado utilizado al leer archivos puede no proporcionar con precisión el contenido del archivo. Sugiero que sea familiar with the nuances of file modes and how they behave on Windows-based OSes.