본문 바로가기
프로그래밍/Python

[Python]비밀번호 입력 시 '*'로 표시하기

by wyatti 2023. 6. 14.

이 글에서는 Python을 사용하여 비밀번호를 안전하게 입력받는 방법을 배웁니다. getpass 모듈을 활용한 기본적인 사용법부터, 로그인 시스템 구현, 해시를 활용한 보안 강화까지 세 가지 예제를 통해 상세히 설명하고 있습니다.
Python에서 비밀번호 입력 시 '*'로 표시하는 방법 Python 보안 팁과 예제

안녕하세요, 여러분! 오늘 우리는 Python에서 사용자의 비밀번호를 안전하게 입력받는 방법에 대해 이야기하려 합니다. 특히 사용자의 비밀번호를 입력 받을 때 화면에 '*'로 표시하는 방법에 대해 배우게 됩니다. Python에서는 이를 구현하기 위해 getpass 모듈을 사용합니다.

 

 

 

예제 1: 기본적인 getpass 사용

Python에서 가장 간단하게 비밀번호 입력을 처리하는 방법은 표준 라이브러리의 getpass 모듈을 사용하는 것입니다. getpass 함수는 사용자에게 입력을 요청하고, 입력 내용을 화면에 표시하지 않습니다. 아래에 기본적인 사용법을 설명한 예제 코드를 제공합니다.

import getpass

# getpass 함수는 입력 내용을 화면에 표시하지 않습니다.
password = getpass.getpass("Enter your password: ")

print("Your password is:", password)

이 코드에서 getpass 함수는 사용자로부터 입력을 받지만, 이를 화면에 표시하지 않습니다. 이를 이용하면 비밀번호를 안전하게 입력받을 수 있습니다.

 

 

 

예제 2: getpass와 if문을 활용한 로그인 시스템

getpass 모듈을 사용하여 간단한 로그인 시스템을 만들어 볼 수도 있습니다. 아래의 코드를 살펴봅시다.

import getpass

correct_password = "python"

# getpass 함수를 이용하여 비밀번호를 입력 받습니다.
input_password = getpass.getpass("Enter your password: ")

# 입력받은 비밀번호와 실제 비밀번호를 비교합니다.
if input_password == correct_password:
    print("Access granted.")
else:
    print("Access denied.")

이 예제에서는 getpass 함수로 비밀번호를 안전하게 입력받은 후, 이를 실제 비밀번호와 비교하여 로그인 성공 여부를 판단합니다. 이런 식으로 getpass 함수는 보안에 민감한 프로그램에서 유용하게 사용할 수 있습니다.

 

 

 

예제 3: getpass와 hashlib를 활용한 보안 강화

Python의 hashlib 모듈을 사용하면 비밀번호를 해시값으로 변환하여 보다 안전하게 관리할 수 있습니다. 아래의 코드를 살펴봅시다.

import getpass
import hashlib

# 실제 비밀번호의 해시값을 생성합니다.
correct_password = hashlib.sha256("python".encode()).hexdigest()

# getpass 함수를 이용하여 비밀번호를 입력 받습니다.
input_password = getpass.getpass("Enter your password: ")

# 입력받은 비밀번호의 해시값을 생성합니다.
input_password_hash = hashlib.sha256(input_password.encode()).hexdigest()

# 두 해시값을 비교합니다.
if input_password_hash == correct_password:
    print("Access granted.")
else:
    print("Access denied.")

이 예제에서는 hashlib 모듈의 sha256 함수를 사용하여 비밀번호의 해시값을 생성합니다. 해시값은 원래의 비밀번호로부터 생성되지만, 해시값으로부터 원래의 비밀번호를 알아내는 것은 매우 어렵습니다. 따라서 해시값을 사용하면 비밀번호를 보다 안전하게 관리할 수 있습니다.

 

이상으로 Python에서 비밀번호 입력 시 '*'로 표시하는 방법에 대해 알아보았습니다. 이 기능은 사용자의 비밀번호를 안전하게 보호하는 데 도움이 될 것입니다. 이 외에도 여러분의 코드를 보안하기 위한 다양한 방법이 있으니 계속해서 공부하시기 바랍니다. 이 글이 여러분에게 도움이 되었다면, 공유와 좋아요를 부탁드립니다!

댓글