Python とプログラミングの初心者。現在、銀行口座のログインの詳細などを保持するための小さな python 3 コードを書いています。回避できるのであれば、復号化された情報をディスクに保存したくないので、メモリ。
このファイルは、辞書をピクルしてファイルに暗号化する、プログラム内の別の関数によって作成されます。ただし、これを解読して開こうとすると:
def OpenDictionary():
""" open the dictionary file """
if os.path.isfile(SAVEFILE):
f = open(SAVEFILE, 'rb')
print('opening gpg file')
buf = io.BytesIO()
decrypted_data = gpg.decrypt_file(f, passphrase=PASSWORD)
buf.write(decrypted_data.data)
print ('ok: ', decrypted_data.ok)
print ('status: ', decrypted_data.status)
print ('stderr: ', decrypted_data.stderr)
f.close()
dictionary = pickle.load(buf)
buf.close()
return dictionary
私は得る:
Traceback (most recent call last): File "C:\Users\Josh Harney\Dropbox\Python-pys\gpg-banks.py", line 179, in <module>
main(sys.argv[1:]) File "C:\Users\Josh Harney\Dropbox\Python-pys\gpg-banks.py", line 173, in main
dictionary = OpenDictionary() File "C:\Users\Josh Harney\Dropbox\Python-pys\gpg-banks.py", line 87, in OpenDictionary
dictionary = pickle.load(buf) EOFError
私のLinuxボックスでも同じ結果です。私はこれを機能させるためにたくさんのものを試しましたが、これまでのところ運がありません. 誰でもこれを行うためのより良い方法を提案できますか? 基本的に、gpg.decrypt_file をバッファまたは変数に出力し、pickle.load を辞書に読み戻す必要があります。