Python - passlib 모듈로 데이터(비밀번호)를 암호화하고 검증하기

반응형

passlib 모듈이란?

  • 파이썬용 비밀번호 해싱 라이브러리(모듈)
  • 30개 이상의 비밀번호 해싱 알고리즘
  • 기존 비밀번호 해시를 관리

pbkd2 함수

  • passlib 라이브러리에서 사용하는 함수
  • 암호 기반 키 파생 기능
  • 일반적으로 sha256 함수를 많이 사용

passlib 라이브러리 설치

pip install passlib

passlib 라이브러리 호출 (pbkd2 사용)

from passlib.hash import pbkdf2_sha256

암호(Hash) 함수의 개념과 데이터 암호화하기

  • 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑
  • 암호용 해시 함수는 매핑된 해싱 값만을 알아가지고는 원래 입력 값을 알아내기 힘들다는 사실에 의해 사용
  • 매핑된 데이터로부터 원래의 데이터를 복구 할 수 없어야 함
  • 동일한 출력을 갖는 서로 다른 데이터를 찾을 수 없어야 함
# 원문 비밀번호를 암호화 하는 함수
# hash : 암호화 하는 함수
def hash_password(original_password) :
    salt = 'yh*hello12'
    password = original_password + salt
    password = pbkdf2_sha256.hash(password)
    return password

암호화된 데이터 검증하기 (verify)

  • 해시로부터 암호화된 기존 데이터에 대한 사용자 입력을 확인
  • 즉, 비밀번호가 맞는지 확인 가능
# 비밀번호가 맞는지 확인하는 함수
# verify : 두 데이터가 동일하는지 확인하는 함수
def check_password(original_password, hashed_password) :
    salt = 'yh*hello12'
    check = pbkdf2_sha256.verify(original_password+salt, hashed_password)
    return check # Return value : True/False
반응형