在python中,使用gnupg包,是否可以在内存中取值,然后将其写入加密文件而不是写入文件THEN加密?
我希望这样的东西能起作用:
import gnupg
gpg = gnupg.GPG(gnupghome='keydirectory')
l = [['a', '1'], ['b', '2'], ['c', '3']]
gpg.encrypt_file(l, recipients=['test@test.com'], output='encryptedfile.asc')
我希望有一个像这样的写概念逐行循环,但我找不到一个。
with open('regularfile.txt', 'w') as file:
for i in l:
file.write(i)
理想情况下,我可以通过直接写入连接到数据库并输出文件。
答案 0 :(得分:0)
只需使用gpg.encrypt()
函数代替encrypt_file()
,然后写入文件。
答案 1 :(得分: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.'