【发布时间】:2021-07-14 13:47:44
【问题描述】:
我正在尝试创建一个可用于加密和解密文件的简单脚本。然而,使用什么密码似乎并不重要。举个例子:
gen_key.py
import gnupg
import os
gpg = gnupg.GPG(gnupghome='gnupg')
gpg.encoding = 'utf-8'
input_data = gpg.gen_key_input(
name_email = 'test@test.com',
passphrase = 'mypassphrase',
key_type = 'RSA',
key_length = 1024)
key = gpg.gen_key(input_data)
print(key)
加密.py
import gnupg
import os
gpg = gnupg.GPG(gnupghome = 'gnupg')
with open('test.txt', 'rb') as f:
status = gpg.encrypt_file(f, recipients = ['test@test.com'], output='test.encrypted')
print(status.ok)
解密.py
import gnupg
import os
gpg = gnupg.GPG(gnupghome='gnupg')
with open('test.encrypted', 'rb') as f:
status = gpg.decrypt_file(f, passphrase = 'wrongpassphrase', output = 'test2.txt')
print(status.ok)
请注意,我们在 decrypt.py 中使用了错误的密码。
但是,即使我们输入了错误的密码,decrypt.py 仍然可以解密文件。有谁知道这是为什么?还有一个更好的问题:如何避免这种情况?
【问题讨论】:
标签: python encryption gnupg