- 암호화 해시란?
- 해시 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수로 암호화 해시는 매핑된 값으로부터 원래의 입력 값과의 관계를 찾기 어려운 성질을 가집니다.
- Flask에서 지원하는 암호화 해시 패키지는 대표적으로 아래와 같습니다.
- bcrypt 패키지 설치
- bcrypt의 경우 werkzeug와 달리 별도의 패키지 설치가 필요합니다.
pip install bcrypt
# 추가로 freeze
pip freeze > requirements.txt
# werkzeug
from werkzeug import security
password = security.generate_password_hash(password)
# bcrypt
from flask import Flask
from flask.ext.bcrypt import Bcrypt
app = Flask(__name__)
bcrypt = Bcrypt(app)
password = bcrypt.generate_password_hash(password)
- check_password_hash
- (암호화 데이터, 복호화 데이터) 두 대상의 일치 여부
- return 값 – boolean
# werkzeug
from werkzeug import security
if security.check_password_hash(user.password, password):
flash('Login')
else:
flash('Password invalid')
# bcrypt
from flask import Flask
from flask.ext.bcrypt import Bcrypt
app = Flask(__name__)
bcrypt = Bcrypt(app)
if bcrypt.check_password_hash(user.password, password):
flash('Login')
else:
flash('Password invalid')
참고 자료