2010-05-30 7 views
6

Existe-t-il un moyen de crypter des fichiers (.zip, .doc, .exe, ... n'importe quel type de fichier) avec Python? J'ai regardé un tas de bibliothèques de chiffrement pour Python, y compris pycrypto et ezpycrypto mais pour autant que je vois, ils offrent seulement le chiffrement de chaîne.Cryptage de fichier avec Python

+0

En relation: [Créer un fichier ZIP crypté en Python] (http://stackoverflow.com/questions/17250/create-an-encrypted-zip-file-in-python) – miku

+7

En Python 2, les chaînes sont vraiment des octets -strings, de sorte que vous pouvez simplement lire dans le fichier comme binaire, crypter, puis écrire en tant que binaire. –

+1

Ugh .. comment se fait-il que je ne pouvais pas penser ça. Merci :) – Pinkie

Répondre

1

Vous pouvez lire le fichier complet dans une chaîne, le crypter, écrire la chaîne cryptée dans un nouveau fichier. Si le fichier est trop volumineux, vous pouvez lire en morceaux.

Chaque fois que vous .read à partir d'un fichier, vous obtenez une chaîne (en Python < 3.0).

2

Dans les versions Python antérieures à la version 3.0, le read method d'un file object renverra une chaîne, fournir cette chaîne à la bibliothèque de chiffrement de votre choix, la chaîne résultante peut être écrite dans un fichier. Gardez à l'esprit que sur les systèmes d'exploitation basés sur Windows, le mode par défaut utilisé lors de la lecture des fichiers peut ne pas fournir de manière précise le contenu du fichier. Je suggère que vous soyez familiar with the nuances of file modes and how they behave on Windows-based OSes.