파이썬을 사용한 비밀번호 암호화 및 안전한 로그인 기능 구현하기

목차

비밀번호 암호화

비밀번호를 암호화하는 것은 사용자의 정보를 보호하는 데 중요한 역할을 합니다. 파이썬에서는 bcrypthashlib와 같은 모듈을 사용하여 비밀번호를 안전하게 저장할 수 있습니다.

아래는 bcrypt 모듈을 사용하여 비밀번호를 암호화하는 예시입니다.

import bcrypt

# 사용자 비밀번호
password = "mypassword"

# 비밀번호 해시 생성
hashed_password = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())

# 해시된 비밀번호 출력
print(hashed_password)

bcrypthashpw 함수를 사용하여 입력한 비밀번호를 해시값으로 변환합니다. gensalt 함수는 무작위 솔트(salt)를 생성하여 비밀번호를 더욱 안전하게 만듭니다. 생성된 해시값을 데이터베이스나 다른 저장 매체에 저장합니다.

안전한 로그인 구현

비밀번호를 암호화한 후에는 안전한 로그인 기능을 구현할 수 있습니다. 사용자가 입력한 비밀번호를 암호화하여 저장한 해시값과 비교하여 로그인을 허용하거나 거부합니다.

import bcrypt

# 미리 저장된 해시된 비밀번호(예시)
stored_password = "$2b$12$lT2/QEpU2M5wWoqiPf7SxuEVy8AExRdXCa98vNhkvMBlM7/DOmfh2"

# 사용자가 입력한 비밀번호
password = "mypassword"

# 해시된 비밀번호와 입력한 비밀번호 비교
if bcrypt.checkpw(password.encode("utf-8"), stored_password):
    print("로그인 성공")
else:
    print("로그인 실패")

bcryptcheckpw 함수를 사용하여 입력한 비밀번호와 저장된 해시된 비밀번호를 비교합니다. 비밀번호가 일치하면 로그인을 성공하고, 일치하지 않으면 로그인을 실패합니다.

참고 자료