继续我的编码之旅(第一天仍然没有写下来,也许永远!),我正在处理实时用户验证程序以阻止未经授权的访问。 这是一个看似简单的想法,但请听我说完。
预期功能:
该程序在系统启动时谨慎运行,定期(例如每小时)提示输入密码。 至关重要的是,它保持高优先级,防止关闭或最小化。密码输入错误会导致系统关闭。
<code class="language-python">from tkinter import * import subprocess import threading import time import getpass # Added for secure password input window = Tk() window.title("User Verification") window.config(background="black") # Initialize password (should be replaced with a more secure method) q = getpass.getpass("Set initial password: ") entry = Entry(window, fg='#00FF00', bg='black', font=('Arial',30), show='*') # Mask password input entry.pack(side=RIGHT) def verify_user(): global q while True: y = entry.get() if y != q: subprocess.run('shutdown /s', shell=True) break # Exit the loop after shutdown else: print('Verification successful.') # Replace password here (securely!) q = getpass.getpass("Set new password: ") entry.delete(0, END) # Clear entry field time.sleep(3600) # Check every hour def start_verification(): verification_thread = threading.Thread(target=verify_user) verification_thread.daemon = True # Allow program to exit even if thread is running verification_thread.start() u = Button(window, text='Start Verification', # Changed button text fg='#00FF00', bg='black', command=start_verification) u.pack(side=BOTTOM) t = Label(window, text='Enter Password:', # Simplified label text font=('Arial',15), fg='#00FF00', bg='black') t.pack(side=LEFT) window.mainloop()</code>
计划的增强功能:
这是一个初级版本。 未来的改进包括:
getpass
模块提供了一个开始,但需要更强大的密码管理。免责声明:这是一个基本示例,缺乏强大的安全功能。 使用风险自负。 对于生产级安全性,请使用已建立的身份验证系统。 欢迎提出建议(但不保证一定会得到答复!)。
以上是日间编码之旅)的详细内容。更多信息请关注PHP中文网其他相关文章!