繼續我的編碼之旅(第一天仍然沒有寫下來,也許永遠!),我正在處理實時用戶驗證程序以阻止未經授權的訪問。 這是一個看似簡單的想法,但請聽我說完。
預期功能:
程式在系統啟動時謹慎運行,並定期(例如每小時)提示輸入密碼。 至關重要的是,它保持高優先級,防止關閉或最小化。密碼輸入錯誤會導致系統關閉。
<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中文網其他相關文章!