> 백엔드 개발 > 파이썬 튜토리얼 > 일일 코딩 여정)

일일 코딩 여정)

Patricia Arquette
풀어 주다: 2025-01-08 07:05:41
원래의
925명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿