Rumah >pembangunan bahagian belakang >Tutorial Python >PERJALANAN PENGEDEPAN HARI)

PERJALANAN PENGEDEPAN HARI)

Patricia Arquette
Patricia Arquetteasal
2025-01-08 07:05:41921semak imbas

DAY CODING JOURNEY)

Meneruskan perjalanan pengekodan saya (Hari 1 kekal tidak ditulis, mungkin selama-lamanya!), saya sedang menangani program pengesahan pengguna masa nyata untuk menghalang akses tanpa kebenaran. Ia adalah idea yang nampak mudah, tetapi dengar pendapat saya.

Fungsi Yang Dimaksudkan:

Program berjalan secara diam-diam semasa sistem dimulakan, secara berkala (cth., setiap jam) meminta kata laluan. Yang penting, ia mengekalkan keutamaan yang tinggi, menghalang penutupan atau pengurangan. Kemasukan kata laluan yang salah mengakibatkan penutupan sistem.

<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>

Peningkatan Terancang:

Ini adalah versi asas. Penambahbaikan masa hadapan termasuk:

  • Perubahan Kata Laluan Dinamik: Laksanakan kaedah selamat untuk menukar kata laluan selepas setiap pengesahan yang berjaya. Modul getpass semasa menyediakan permulaan, tetapi pengurusan kata laluan yang lebih mantap diperlukan.
  • Benang Latar Belakang: Kod kini menggunakan benang daemon untuk menjalankan proses pengesahan di latar belakang, membenarkan tetingkap utama kekal responsif (walaupun secara minimum).

Penafian: Ini adalah contoh asas dan tidak mempunyai ciri keselamatan yang mantap. Gunakan atas risiko anda sendiri. Untuk keselamatan peringkat pengeluaran, gunakan sistem pengesahan yang telah ditetapkan. Cadangan dialu-alukan (tetapi tiada jaminan balasan!).

Atas ialah kandungan terperinci PERJALANAN PENGEDEPAN HARI). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn