2016-10-04 20 views
1

pythonでは、gnupgパッケージを使用して、メモリに値を入れてから、THEN暗号化ファイルに書き込むのではなく、暗号化されたファイルを書き込むことは可能ですか?Pythonで暗号化されたファイルに直接書き込む

import gnupg 

gpg = gnupg.GPG(gnupghome='keydirectory') 

l = [['a', '1'], ['b', '2'], ['c', '3']] 

gpg.encrypt_file(l, recipients=['[email protected]'], output='encryptedfile.asc') 

は私がライン・バイ・ラインをループに、このような書き込みコンセプトがあった期待していたが、私は1つを見つけることができません。

私はこのような何かが仕事と期待していました。

with open('regularfile.txt', 'w') as file: 
    for i in l: 
    file.write(i) 

理想的には、データベースに接続して、直接ファイルを出力することができます。

答えて

0

encrypt_file()の代わりにgpg.encrypt()関数を使用してファイルに書き込むだけです。

0

documentation for the GPG.encrypt methodがあなたの望むものです。

>>> import gnupg 

>>> gpg = gnupg.GPG(homedir="doctests") 
>>> key_settings = gpg.gen_key_input(
...   key_type='RSA', 
...   key_length=1024, 
...   key_usage='ESCA', 
...   passphrase='foo') 
>>> key = gpg.gen_key(key_settings) 

>>> message = "The crow flies at midnight." 
>>> encrypted = str(gpg.encrypt(message, key.printprint)) 
>>> assert encrypted != message 
>>> assert not encrypted.isspace() 

>>> decrypted = str(gpg.decrypt(encrypted)) 
>>> assert not decrypted.isspace() 
>>> decrypted 
'The crow flies at midnight.' 
関連する問題