Hashing 알고리즘
- Hashing알고리즘은 단방향 암호화로,
- 원본 데이터를 해시값으로부터 복원하는 것이 불가능하므로 보안이 중요한 분야에서 많이 활용된다.
- 데이터 무결성 검사, 비밀번호 저장, 디지털 서명, 블록체인 등 다양한 분야에서 사용된다.
vscode 터미널 cmd에서 설치하기
pip install email-validator
pip install passlib
pip install psycopg2-binary
SALT를 config 파일에 만든다. (SALT는 random_state와 비슷한 개념으로, 노출되면 해킹될 수 있다.)
SALT는 본인이 원하는대로 아무렇게나 지정하면 된다
utils.py 만들기
from passlib.hash import pbkdf2_sha256
from config import Config
# 원문 비밀번호를, 단방향으로 암호화하는 함수
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)
비밀번호 입력하고, 실행시키면(python utils.py) 1234를 비밀번호로 만든다.
hashed_password = hash_password('1234')
print(hashed_password)
복사해서, 비밀번호 체크하는 실행문 만들기
check = check_password('1235', '$pbkdf2-sha256$29000$936P8T7nfK/13rvXmnMOYQ$45uMcjbt6Cg4hDHbsJs3tuR7abOJ4j8Wfczblc5FC9E')
print(check)
'RestFul API' 카테고리의 다른 글
JWT 암호화(인증토큰) 사용하여 회원가입 API에 적용하기 (0) | 2024.05.22 |
---|---|
MySQL DB와 Postman을 연동하여 회원가입 API 만들기 (0) | 2024.05.22 |
Is_publish 컬럼을 update하여 "임시 저장" 기능의 API 만들기 (0) | 2024.05.21 |
Flask(플라스크)를 사용하여 MySQL DB의 데이터를 삭제(DELETE)하는 API 만들기 (0) | 2024.05.21 |
Flask(플라스크)를 사용하여 MySQL DB의 데이터를 수정(PUT)하는 API 만들기 (0) | 2024.05.21 |