Я использую шифрование файлов с помощью RSA, используя PyCrypto.
Я знаю, что это несколько неправильно, в первую очередь потому, что RSA очень медленный, а второй потому, что PyCrypto RSA может шифровать только 128 символов, поэтому вам нужно взорвать файл в 128 символов.
Это код до сих пор:
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)
Итак, мой вопрос: есть ли более эффективные методы использования шифрования Private/Public Key ON FILES?
Я слышал о Mcrypt и OpenSSL, но я не знаю, могут ли они шифровать файлы.