본문 바로가기
HangHae99

TIL 2021/06/09 - 3일차

by sangfeeeeel 2021. 6. 10.

해시함수란?

해시함수란, 알고리즘의 한 종류로서 임의이 데이터를 입력 받아 항상 고정된 길이의 임의의 값으로 변환해주는 함수를 말합니다.

  • 우리가 회원가입에 사용할 해시함수 SHA256은 어떤 길이의 입력값을 넣어도 항상 256바이트의 결과값으로 나옵니다.
  • 추가적으로 동일한 입력값은 항상 같은 결과값이 나오고, 입력값은 조금이라도 달라지면 완전히 다른 값이 나오게 됩니다. 그리고 결과값을 통해 입력값을 알아내는 것이 불가능하다는 세 가지 특징이 있습니다!
# / 로그인 post 페이지 입니다. 닉네임과 비밀번호를 처리합니다.
@app.route('/user/login', methods=['POST'])
def postLogin():
    nickName = request.form['nickName']
    password = request.form['password']

    # 비밀번호를 암호화 합니다.
    hashPassword = hashlib.sha256(password.encode('utf-8')).hexdigest();
  • 위의 코드가 해시함수를 사용한 예로
  • password를 받아 해시함수로 변환하는 코드입니다

JWT란?

JSON Web Token의 줄임말로, JSON 객체를 사용해 정보를 안정성 있게 전달하는 웹표준.

  • 예를 들어, 로그인 기능을 생각해보면 사용자가 로그인하면 서버에서 회원임을 인증하는 토큰을 넘겨줌으로써 이후 회원만 접근할 수 있는 서비스 영역에서 신분을 확인하는 데 쓰일 수 있습니다.
token = jwt.encode(payload, secret_key, algorithm='HS256')
                res = jsonify({'ok': False, 'err': '3', 'token': token})
                res.delete_cookie('wrongPwNum')
                return res
  • 위의 코드가 JWT를 활용하여 앞에서 설명함 해시함수까지 활용한 코드입니다.

'HangHae99' 카테고리의 다른 글

TIL 2021/06/14 ~ 2021/06/15 8~9일차  (0) 2021.06.17
WIL 1주차 회고  (0) 2021.06.13
TIL 2021/06/11~2021/06/13 5~7일차.  (0) 2021.06.13
TIL 2021/06/10 4일차  (0) 2021.06.11
TIL 2021/06/08 - 2일차  (0) 2021.06.09