DAY CODING JOURNEY)

Patricia Arquette
Patricia ArquetteOriginal
2025-01-08 07:05:41951browse

DAY CODING JOURNEY)

Continuing my coding journey (Day 1 remains unwritten, perhaps forever!), I'm tackling a real-time user verification program to deter unauthorized access. It's a seemingly simple idea, but hear me out.

Intended Functionality:

The program discreetly runs upon system startup, periodically (e.g., hourly) prompting for a password. Crucially, it maintains high priority, preventing closure or minimization. Incorrect password entry results in system shutdown.

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

Planned Enhancements:

This is a rudimentary version. Future improvements include:

  • Dynamic Password Changes: Implement a secure method for changing the password after each successful verification. The current getpass module provides a start, but more robust password management is needed.
  • Background Threading: The code now uses a daemon thread to run the verification process in the background, allowing the main window to remain responsive (though minimally so).

Disclaimer: This is a basic example and lacks robust security features. Use at your own risk. For production-level security, use established authentication systems. Suggestions welcome (but no guarantees of responses!).

The above is the detailed content of DAY CODING JOURNEY). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn