비밀번호 단방향 암호화와 유저가 로그인할 때 비밀번호가 맞는지 확인하는 코드
- pbkdf2_sha256 사용 -
비밀번호 처리 - 라이브러리 설치 및 함수
$ pip install psycopg2-binary
$ pip install passlib
- 설치 명령어 설명 _ pypi 사이트
https://pypi.org/project/psycopg2-binary/
https://pypi.org/project/passlib/
비밀번호 단방향으로 암호화하고 비밀번호 맞는지 체크하는 함수 만드는 코드 작성
- 필요한 함수들을 만들어둘 utils.py 파일 만들기
- 설치한 라이브러리 hash에 pbkdf2_sha256 를 사용한다.
from passlib.hash import pbkdf2_sha256
from config import Config
# * Config.SALT 사용
# 원문 비밀번호를, 단방향으로 암호화 하는 함수
def hash_password(original_password) :
original_password = original_password + Config.SALT
password = pbkdf2_sha256.hash(original_password)
return password
# 유저가 로그인할때, 입력한 비밀번호가 맞는지 체크하는 함수.
def check_password(original_password, hashed_password) :
original_password = original_password + Config.SALT
return pbkdf2_sha256.verify(original_password, hashed_password)
코드를 완성했다면, 단위테스트( unit test ) 해보자.
- 해당 폴더만 실행하는 코드
$ python utils.py
- 확인하는 코드
hashed_password = hash_password('1234')
print(hashed_password)
check = check_password('1234', '$pbkdf2-sha256$29000$RYhRSkkpRUjJGcP4X8t5Lw$2DJ5RPWfHBqGdcmPbwcLipOlcHJdx/i82Kp4GFxLyuY' )
print(check)
- 답변 : 비밀번호 생성, 확인하는 코드는 True/False 로 답을 준다.
* 원본 암호에 더하는 문자를 Config.SALT 사용하는 이유
랜덤의 seed 값 처럼 이 값을 알면 유저의 비밀번호를 누구나 예상할 수 있기 때문에 보안으로 처리해 준다.
config.py에 SALT 변수로 저장하여 사용한다.
'RESTFUL API 개발' 카테고리의 다른 글
[Restful API] Flask에서 JWT 사용 _ JWT 설치하기, 토큰을 적용한 회원가입 API (0) | 2024.05.22 |
---|---|
[Restful API] 이메일 주소 형식이 올바른지 확인하는 방법 _email-validator (0) | 2024.05.22 |
[Restful API] Python에서 MySQL Connector 불리언(boolean) 하는 방법 (0) | 2024.05.22 |
[Restfull API] Python에서 MySQL Connector delete 하는 방법 (0) | 2024.05.22 |
[Restfull API] Python에서 MySQL Connector Update 하는 방법 (0) | 2024.05.22 |