为什么使用python-gnupg会导致.xlsx文件无法读取?

时间:2016-04-15 16:46:07

标签: python encryption xlsx gnupg

我在python-gnupg包中遇到了一些问题。 我需要解密一个加密的.xlsx文件,用它做一些事情然后再加密它。所以我写了一个小脚本来看看它是如何工作的......它没有。

不幸的是,搜索SO并没有返回很多答案(不知何故python-gpg相关问题在这里得不到很好),也没有谷歌搜索。我发现的那些似乎相关但不是:SO: privilege relatedpython-gnupg group: add str to crypt object

问题可以如下:

  1. 该程序对.xlsx文件进行加密和解密,但在此过程后无法读取。
  2. 如果我使用命令行加密文件,则无法从python中解密。相反,我看到以下错误:

    File "/gnupg-2.0.2-py3.5.egg/gnupg/_parsers.py", line 1419 in _handle_status raise ValueError("Unknown status message: %r" % key)
    ValueError: Unknown status message: 'FAILURE'
    
  3. 代码适用于文本文件,但如果我使用CLI加密这样的文件,python中的解密会导致与上面相同的错误。

  4. 以下是代码:

    # -*- coding: utf-8 -*-
    
    import gnupg
    
    gpg = gnupg.GPG(homedir='~/.gnupg/')
    
    with open('echo.xlsx', 'rb') as f:
        status = gpg.encrypt(
            f, '5955128B',
            output='echo.xlsx.gpg')
    
    print ('ok: ', status.ok)
    print ('status: ', status.status)
    print ('stderr: ', status.stderr)
    
    a = input('press any key to continue')
    
    with open('echo.xslx.gpg', 'rb',) as f:
        status = gpg.decrypt_file(
            f, passphrase='passphrase', output='echo2.xslx')
    
    print ('ok: ', status.ok)
    print ('status: ', status.status)
    print ('stderr: ', status.stderr)
    

    我在python 3.5,python-gnupg 2.0.2,GnuPG 2.0.29。

    我真的很感激一些帮助,我迫切需要这个工作。

0 个答案:

没有答案