首頁 >後端開發 >Python教學 >日間編碼之旅)

日間編碼之旅)

Patricia Arquette
Patricia Arquette原創
2025-01-08 07:05:41951瀏覽

DAY CODING JOURNEY)

繼續我的編碼之旅(第一天仍然沒有寫下來,也許永遠!),我正在處理實時用戶驗證程序以阻止未經授權的訪問。 這是一個看似簡單的想法,但請聽我說完。

預期功能:

程式在系統啟動時謹慎運行,並定期(例如每小時)提示輸入密碼。 至關重要的是,它保持高優先級,防止關閉或最小化。密碼輸入錯誤會導致系統關閉。

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn