2017-10-14 76 views
0

我想创建一个函数,使用gpg -c通过tkinter中的输入框来加密文件。我的问题是,gpg -c提示用户通过终端输入密码两次。Tkinter python 3 - gpg加密

我能够执行命令,但它需要通过终端输入。是否可以使用一个变量或一些可以与命令结合的占位符?这种方式终端不是必需的。还是有其他选择吗?

例如这里是正常的命令行:

gpg -c test.txt 
Enter passphrase: ***********  
Repeat passphrase: *********** 

回答

0

而不是使用GPG命令行工具,它会更好地使用Python-gnupg的库中找到的位置:https://pythonhosted.org/python-gnupg,其中加密和签名看起来会像这样(从docs空运):

>>> encrypted_data = gpg.encrypt(data, recipients, sign=signer_fingerprint, passphrase=signer_passphrase) 

这将避免两两件事:

  1. 具有外部依赖于GPG二进制(使得分配困难)
  2. 使用命令行输入和输出处理,其是棘手