Maison > développement back-end > Tutoriel Python > PARCOURS DE CODAGE DE JOUR)

PARCOURS DE CODAGE DE JOUR)

Patricia Arquette
Libérer: 2025-01-08 07:05:41
original
925 Les gens l'ont consulté

DAY CODING JOURNEY)

Poursuivant mon parcours de codage (le premier jour reste non écrit, peut-être pour toujours !), je m'attaque à un programme de vérification des utilisateurs en temps réel pour dissuader les accès non autorisés. C'est une idée apparemment simple, mais écoutez-moi.

Fonctionnalité prévue :

Le programme s'exécute discrètement au démarrage du système, demandant périodiquement (par exemple toutes les heures) un mot de passe. Surtout, il maintient une priorité élevée, empêchant la fermeture ou la minimisation. Une saisie de mot de passe incorrect entraîne l'arrêt du système.

<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>
Copier après la connexion

Améliorations prévues :

Ceci est une version rudimentaire. Les améliorations futures incluent :

  • Modifications dynamiques du mot de passe : Implémentez une méthode sécurisée pour modifier le mot de passe après chaque vérification réussie. Le module getpass actuel constitue un début, mais une gestion des mots de passe plus robuste est nécessaire.
  • Threading en arrière-plan : Le code utilise désormais un thread démon pour exécuter le processus de vérification en arrière-plan, permettant à la fenêtre principale de rester réactive (bien que de manière minimale).

Avertissement : Ceci est un exemple de base et ne dispose pas de fonctionnalités de sécurité robustes. Utilisez à vos propres risques. Pour une sécurité au niveau de la production, utilisez des systèmes d’authentification établis. Les suggestions sont les bienvenues (mais aucune garantie de réponses !).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal