[Flask] flask_bcrypt 암호화

Yungsang Hwang·2022년 5월 21일
0

Python-Flask

목록 보기
1/2
post-thumbnail

📌flask_bcrypt

flask_bcrypt?

  • 파이썬 플라스크 프레임워크에서 사용하는 암호화 라이브러리

  • bcrypt 형식은 다른 여러 분야에서 사용되는 암호화 알고리즘이며, flask_bcrypt는 그 중에서도 파이썬 플라스크 프레임워크에서 사용할 수 있게 되어 있다.

flask_bcrypt를 사용하는 이유

  • 사용자가 입력한 정보를 그대로 데이터베이스에 담는다면 개발자가 임의로 사용자 정보에 접근할 수 있기 때문에 웹의 신뢰성이 떨어지며, 또한 보안성도 의심된다!

flask_bcrypt 활용하기

flask_bcrypt 임포트

  1. console에서 flask_bcrypt 패키지를 설치해야 한다.

    pip install flask_bcrypt

  2. 플라스크 프로젝트 파일에서 flask_bcrypt 라이브러리를 임포트 해야 기능을 사용할 수 있다.

  • flask_bcrypt 중에서 Bcrypt를 사용한다.
from flask_bcrypt import Bcrypt

bcrypt 초기설정

  • 암호화 하기 위한 시크릿키 설정
  • 시크릿키는 공유되어서는 안된다!
app.config['SECRET_KEY'] = 'secretKey'
app.config['BCRYPT_LEVEL'] = 10
  • 플라스크 안에서 비크립트 메서드를 사용하기 위한 메서드
bcrypt = Bcrypt(app)

bcrypt.generate_password_hash()

  • 데이터를 암호화 하기위한 Bcrypt 메서드
  • 괄호 안에 원하는 값 혹은 변수를 넣는다
pw_hash = bcrypt.generate_password_hash(pw_receive)

bcrypt.check_password_hash()

  • 이미 해싱된 암호와 정수, 문자열과 같은 자료와 비교하는 메서드
  • True, False 값을 리턴한다
  • 한번 더 해싱해서 비교하지 않는 장점이 있음
id_receive = data.get('id')
pw_receive = data.get('pw')

    
find_user = db.user.find_one({'id': id_receive})

    
# -- pw check --
is_same = bcrypt.check_password_hash(find_user['pw'],pw_receive)

레퍼런스 링크

공식 도큐먼트, 블로그 1, 블로그 2, Stack Overflow

profile
하루종일 몽상가

0개의 댓글