2024-03-28 12:33:31 发布
网友
我正在开发一个备份守护进程,它将在后台静默运行。守护进程依赖于duplicity备份软件,备份时需要加密密钥。我不能通过控制台请求密码,因为显然,守护进程没有权限访问这样的密码。
duplicity
如何轻松地创建一个提示,要求用户输入密码,并将其返回给应用程序(通过Python变量)?我使用的是Python 2.7。
因为不是每个人都想使用TK,下面是一个使用PyQt的脚本:
from PyQt5.QtWidgets import QApplication, QInputDialog, QLineEdit import sys app = QApplication(sys.argv) qd = QInputDialog() qd.setTextEchoMode(QLineEdit.Password) qd.show() app.exec()
而且,因为你通常不会为了一个该死的密码而直接向用户索要密码:
#!/bin/env python3 #passwordPrompt.py from PyQt5.QtWidgets import QApplication, QInputDialog import sys, time def succFunc(): sys.stdout.write(qd.textValue()) sys.stdout.flush() exit(0) def failFunc(): exit(1) app = QApplication(sys.argv) qd = QInputDialog() #QLineEdit.Password qd.setTextEchoMode(2) qd.rejected.connect(failFunc) qd.accepted.connect(succFunc) qd.show() app.exec()
以及相应的bash函数:
#!/bin/bash passwordPrompt.py | tee
from Tkinter import * def getpwd(): password = '' root = Tk() pwdbox = Entry(root, show = '*') def onpwdentry(evt): password = pwdbox.get() root.destroy() def onokclick(): password = pwdbox.get() root.destroy() Label(root, text = 'Password').pack(side = 'top') pwdbox.pack(side = 'top') pwdbox.bind('<Return>', onpwdentry) Button(root, command=onokclick, text = 'OK').pack(side = 'top') root.mainloop() return password
因为您要求最简单的(Python2.7):
import Tkinter, tkSimpleDialog tkSimpleDialog.askstring("Password", "Enter password:", show='*')
对于Python3.3:
import tkinter tkinter.simpledialog.askstring("Password", "Enter password:", show='*')
对于Python3.6+:
import tkinter as tk import tkinter.simpledialog tk.Tk().withdraw() tkinter.simpledialog.askstring("Password", "Enter password:", show='*')
因为不是每个人都想使用TK,下面是一个使用PyQt的脚本:
而且,因为你通常不会为了一个该死的密码而直接向用户索要密码:
以及相应的bash函数:
因为您要求最简单的(Python2.7):
对于Python3.3:
对于Python3.6+:
相关问题 更多 >
编程相关推荐