2. [파이썬] Flask를 이용한 인증

SangWan Lee·2022년 11월 22일
0

Python 기초

목록 보기
2/3

Werkzeug를 사용하여 비밀번호 해싱하기.

내가 이용한 함수 -> generate_password_hash(password, method="pbkdf2:sha256", salt_length=8)

여기서 password는 요청 받는 폼에서 입력값을 받고, pbkdf2:sha256을 사용하여 비밀번호를 해시, salt_length는 8을 추가하여 비밀번호를 암호화 한다.

그러면 다음과 같이 DB에는 암호화된 비밀번호로 저장된다.

결과 자료

소스 코드

@app.route('/register', methods=['GET', 'POST'])
def register():
	'''비밀번호 해싱 진행 부분 '''
    hash_and_salted_password = generate_password_hash(
        request.form.get('password'),
        method="pbkdf2:sha256",
        salt_length=8
    )
    user = User()
    user.name = request.form.get('name')
    user.email = request.form.get('email')
    user.password = hash_and_salted_password
    # user.password = request.form.get('password')

    if request.form:
        db.session.add(user)
        db.session.commit()

        '''
        51 Line Info
        code=302 Default , code=307 값을 줘야 name 값을 가져 오는 이유는?
        302는 기존 Method 와 Body 를 버리고 GET 방식으로 요청하는 반면,
        307 은 받은 요청 Method 와 Body 를 유지한채로 재 요청 하기 때문에,
        담겨 있던 name 이 정상적으로 secrets 페이지에 정상 적으로 출력.
        '''
        return redirect(url_for("secrets"), TEMPORARY_REDIRECT)
    return render_template("register.html")

참고 사이트

https://werkzeug.palletsprojects.com/en/1.0.x/utils/#module-werkzeug.security 다음 링크의 문서를 참고하여 비밀번호 해싱 및 솔트를 하였습니다.

profile
'기록되지 않으면 기억되지 않는다. '

0개의 댓글