Rumah >pembangunan bahagian belakang >Tutorial Python >Bina Penjana Kata Laluan Python: Panduan Pemula
비밀번호 생성기를 호스팅하고 귀하에게만 서비스를 제공하는 것은 놀라운 도구이자 시작하는 프로젝트입니다. 이 가이드에서는 간단한 비밀번호 생성기를 구축하고 Pythonanywhere를 사용하여 호스팅하는 방법을 살펴보겠습니다.
데이터 유출이 점점 흔한 시대에 각 온라인 계정에 대해 강력하고 고유한 비밀번호를 갖는 것이 그 어느 때보다 중요합니다. 강력한 비밀번호에는 일반적으로 대문자와 소문자, 숫자, 특수 문자가 혼합되어 있습니다. 또한 무차별 대입 공격을 견딜 수 있을 만큼 길어야 합니다. 그러나 그러한 비밀번호를 만들고 기억하는 것은 어려울 수 있습니다. 비밀번호 생성기가 유용한 곳입니다.
코딩을 시작하기 전에 컴퓨터에 Python이 설치되어 있는지 확인하세요. 공식 Python 웹사이트에서 다운로드할 수 있습니다. 이 프로젝트에서는 Python 3.12.7
을 사용합니다.Python 버전을 확인하려면 명령 프롬프트나 터미널을 열고 다음을 입력하세요.
python --version
3으로 시작하는 버전 번호(예: Python 3.8.5)가 보이면 시작할 준비가 된 것입니다.
먼저 비밀번호 생성기의 전체 코드를 살펴보겠습니다. 위협적으로 보이더라도 걱정하지 마세요. 다음 섹션에서 한 줄씩 분석하겠습니다.
import random import string def generate_password(length=12): characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(random.choice(characters) for _ in range(length)) return password def main(): print("Welcome to the Simple Password Generator!") try: length = int(input("Enter the desired password length: ")) if length <= 0: raise ValueError("Password length must be positive") except ValueError as e: print(f"Invalid input: {e}") print("Using default length of 12 characters.") length = 12 password = generate_password(length) print(f"\nYour generated password is: {password}") if __name__ == "__main__": main()
이제 이를 분해하여 각 부분을 자세히 살펴보겠습니다. 그 전에 제가 작성한 Python으로 고급 비밀번호 크래커 구축(전체 가이드)이라는 놀라운 기사를 살펴보겠습니다.
import random import string
이 두 줄은 비밀번호 생성기에 필요한 모듈을 가져옵니다.
[random](https://www.w3schools.com/python/module_random.asp) 모듈은 난수를 생성하고 무작위로 선택하는 기능을 제공합니다. 비밀번호 문자를 무작위로 선택하는 데 사용됩니다.
[string](https://docs.python.org/3/library/string.html) 모듈은 다양한 유형의 문자(문자, 숫자, 구두점)가 포함된 상수를 제공합니다. 이렇게 하면 비밀번호에 사용할 수 있는 모든 문자를 수동으로 입력할 필요가 없습니다.
def generate_password(length=12):
이 줄은 generate_password라는 함수를 정의합니다. Python의 def 키워드는 함수를 정의하는 데 사용됩니다. 이 함수는 길이라는 하나의 매개변수를 사용하며 기본값은 12입니다. 즉, 함수 호출 시 길이를 지정하지 않으면 12자의 비밀번호가 생성됩니다.
characters = string.ascii_letters + string.digits + string.punctuation
이 줄은 비밀번호에 사용할 수 있는 모든 문자를 포함하는 문자라는 문자열을 생성합니다. 분해해 보겠습니다.
이를 연산자와 함께 추가하면 모든 문자를 포함하는 단일 문자열이 생성됩니다.
password = ''.join(random.choice(characters) for _ in range(length))
이 줄은 실제 비밀번호 생성이 이루어지는 곳입니다. 좀 복잡하니 좀 더 자세히 살펴보겠습니다.
결과는 비밀번호 변수에 저장됩니다.
return password
이 줄은 함수에서 생성된 비밀번호를 반환합니다.
def main():
이 줄은 사용자 상호 작용을 처리하고 generate_password 함수를 호출하는 기본 함수를 정의합니다.
print("Welcome to the Simple Password Generator!")
이 줄은 사용자를 위한 환영 메시지를 인쇄합니다.
try: length = int(input("Enter the desired password length: ")) if length <= 0: raise ValueError("Password length must be positive")
These lines are part of a try block, which allows us to handle potential errors:
except ValueError as e: print(f"Invalid input: {e}") print("Using default length of 12 characters.") length = 12
This except block catches any ValueError that might occur, either from int() if the user enters a non-numeric value, or from our manually raised error if they enter a non-positive number.
password = generate_password(length) print(f"\nYour generated password is: {password}")
These lines call our generate_password function with the specified (or default) length, and then print the resulting password.
if __name__ == "__main__": main()
This block is a common Python idiom. It checks if the script is being run directly (as opposed to being imported as a module). If it is, it calls the main() function.
Lets explore __**name__** = "__main__"
The line if __name__ == "__main__": might look strange if you're new to Python, but it's a very useful and common pattern. Let's break it down step by step:
This line checks whether the Python script is being run directly by the user or if it's being imported as a module into another script. Based on this, it decides whether to run certain parts of the code or not.
Imagine you have a Swiss Army knife. This knife has many tools, like a blade, scissors, and a screwdriver.
The if __name__ == "__main__": check is like the knife asking, "Am I being used as the main tool right now, or am I just lending one of my tools to another task?"
This check allows you to write code that can be both run on its own and imported by other scripts without running unintended code. Here's a practical example.
def greet(name): return f"Hello, {name}!" def main(): name = input("Enter your name: ") print(greet(name)) if __name__ == "__main__": main()
In this script:
In our password generator script.
if __name__ == "__main__": main()
This means:
Our password generator works, and in the next part of this article, we will modify the password generator to do a lot more, which includes.
Custom Character Sets: Allow users to specify which types of characters they want in their password (e.g., only letters and numbers, no special characters).
Password Strength Checker: Implement a function to evaluate the strength of the generated password and provide feedback to the user.
Multiple Passwords: Give users the option to generate multiple passwords at once.
GUI Interface: Create a graphical user interface using a library like Tkinter to make the program more user-friendly.
Password Storage: Implement a secure way to store generated passwords, possibly with encryption.
Atas ialah kandungan terperinci Bina Penjana Kata Laluan Python: Panduan Pemula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!