Crypter un fichier avec RSA en Python

Je suis la mise en œuvre de cryptage de fichier avec le RSA, l'aide de PyCrypto.

Je sais que c'est un peu faux, d'abord parce que RSA est très lent et en second lieu parce que PyCrypto RSA ne peut crypter 128 caractères, de sorte que vous avez à faire exploser le fichier de 128 caractères morceaux.

C'est le code pour l'instant:

from Crypto.PublicKey import RSA

file_to_encrypt = open('my_file.ext', 'rb').read()
pub_key = open('my_pub_key.pem', 'rb').read()
o = RSA.importKey(pub_key)

to_join = []
step = 0

while 1:
    # Read 128 characters at a time.
    s = file_to_encrypt[step*128:(step+1)*128]
    if not s: break
    # Encrypt with RSA and append the result to list.
    # RSA encryption returns a tuple containing 1 string, so i fetch the string.
    to_join.append(o.encrypt(s, 0)[0])
    step += 1

# Join the results.
# I hope the \r\r\r sequence won't appear in the encrypted result,
# when i explode the string back for decryption.
encrypted = '\r\r\r'.join(to_join)
# Write the encrypted file.
open('encrypted_file.ext', 'wb').write(encrypted)

Donc ma question est : existe-il des meilleures méthodes pour l'utilisation Privée/clé Publique de chiffrement SUR les FICHIERS ?

J'ai entendu parler de Mcrypt et d'OpenSSL, mais je ne sais pas si on peut crypter des fichiers.

Vous devez utiliser un chiffrement symétrique comme AES pour crypter le fichier, puis utilisation de RSA pour crypter la clé AES.
B: je souhaite que je pourrais, comme ce commentaire 100 fois.
Gpg4win fait quoi @Petey B dit que vous devriez faire.
1. Le montant qui peut être chiffré est une fonction du module RSA de taille. 2. Le bloc que vous chiffrez doit être inférieur au module d'élasticité que les entiers, de sorte que vous ne peut pas garantir le fonctionnement correct de 1024 bits module si vous chiffrer des blocs de 128 octets à la fois. 3. Vous vous demandez s'il existe de meilleures méthodes, mais vous avez rejeté les suggestions. Dans ce cas, quelle est votre définition de "mieux"?
Merci beaucoup pour vos conseils!!! Je sais que je suis un peu têtu, mais je l'écoute à l'avis de l'expert.

OriginalL'auteur Cristi Constantin | 2011-06-10