使用文件中的密码解密GnuPG加密的文件

2024-05-01 21:25:51 发布

您现在位置:Python中文网/ 问答频道 /正文

当我用python编写status = gpg.decrypt_file(f, passphrase='password', output='output.txt')时。 我可以解密文件。在

当我写password='password' status = gpg.decrypt_file(f, passphrase=password, output='output.txt') 我也可以解密文件。在

但当我写作的时候

ff = open("4.txt",'rb')
temp = ff.readline()
password = temp[0:len(temp)-2]
status = gpg.decrypt_file(f, passphrase=password, output='output.txt')

我无法解密文件,因为temppassword\r\n,所以password是“密码”

谢谢。在


Tags: 文件txtoutputreadlinelenstatuspasswordopen
1条回答
网友
1楼 · 发布于 2024-05-01 21:25:51
  • 使用文本模式读取已知为文本的流。在
  • 依赖文本输入流的“通用换行符”。在
  • 使用字符串类型方法处理字符串。在
passphrase_infile_path = "lorem.txt"
with open(passphrase_infile_path, 'r') as passphrase_infile:
    passphrase_line = passphrase_infile.readline()
    passphrase = passphrase_line.rstrip('\n')

这样密码短语就可以工作了,因为只有那些没有换行符的字符。在

^{pr2}$

首先,注意temp[0:len(temp)-2]更习惯地写成temp[:-2]。在

此表达式获取序列temp的最后两个项目。在

由于temp是一个字节序列,因此总是删除该序列的最后两个字节。在

>>> line = b'rabbit\r\n'
>>> line[:-2]
'rabbit'
>>> line = b'rabbit\n'
>>> line[:-2]
'rabbi'

这不是从输入行中删去换行符的可靠方法。在

相反,在文本模式下打开文件,您将得到标准化的换行符和文本输入。然后,使用str内置方法按字符操作它。在

相关问题 更多 >