반응형
비밀번호는 암호화로 처리한다. 원리는 하기 이미지와 같다.

해당 기능을 사용하기 위해서는 우선적으로, vscode cmd 터미널에서 하기 라이브러리를 설치합니다.
pip install psycopg2-binary passlib
- 암호화 관련되서, 암호화 코드를 관리해줄 file을 생성한다. 해당 파일을 하나 생성하면, 어떤 서비스를 만들던지, 이 파일만 가져다놓으면 된다.
- 파일 이름은 utils.py (utility 유용한 함수만 모아놓은 파일이라는 뜻)로 하고, 여기서 관리하자.
- 코드 생성 및 실행 시 실제 서비스가 진행되는 단계는: 회원가입 -> 이메일.비밀번호 -> 비밀번호 암호화
암호화 코드 예제:

from passlib.hash import pbkdf2_sha256
# 암호화 알고리즘. 256을 제일 많이 사용한다.
# 원문 비밀번호를, 암호화 하는 함수
def hash_password(original_password):
salt = '1234'yh*hello12'
password = original_password + salt
password = pbkdf2_sha256.hash(password)
return password
salt 변수에 담겨있는 내용은 seed값과 같으므로, 외부에 유출되지 않게 반드시 유의하여야한다.
- 비밀번호는 암호화만 되어야지, 복구화가 되면 안된다.
- 암호화는 하되, 복구화는 하지 못하게 하는 것을 hash라고 한다.
salt라는 변수를 넣었는 데, 그 뜻은
| 내가 입력한 비밀번호: 1234 -> 문자열 추가 : '1234'yh*hello12' -> 암호화: sfgfkghfdkjsu83h89jka3cnmxcmm -> DB에 저장 |
- 우리가 만든 문자열을 만든걸 유저가 회원가입할 때 입력한 값 뒤에 붙여, 이걸 암호화 하면 다른 이상한 문자열이 나온다.
- 그럼 해커들이 암호를 알아도, 그 뒤에 어떤 문자열을 넣어야, 어떤 문자열로 암호화 되는지 모른다. 그게 hashed_password이다.
- 1234뒤에 문자열을 붙여서, 그 pdkf2의 라이브러리를 사용해서 이상한 문자열로 생성하게 한다. 그리고 return 한다.
다음은 로그인 할 때 비밀번호 체크관련 포스팅이다.
반응형
'BackEnd > Python-Flask' 카테고리의 다른 글
| [백엔드] Flask: 파이썬에서 JWT사용 (0) | 2022.07.02 |
|---|---|
| [백엔드] Flask: 비밀번호 처리 : 비밀번호 로그인 체크 (0) | 2022.07.01 |
| [백엔드] Flask: 터미널에 API 진행상황이 안나올 때 (0) | 2022.06.27 |
| [백엔드] Flask: recipe 프로젝트: API 조회/수정/삭제: GET/PUT/DELETE (0) | 2022.06.27 |
| [백엔드] Flask: recipe 프로젝트: API 설계, 새로운 데이터 작성: POST (0) | 2022.06.27 |