비밀번호 암호화(Hash, salt)
·
웹 기초 지식
비밀번호 암호화비밀번호 암호화를 위해 사용하는 기법이 두 가지가 있습니다.해시(Hash): 비밀번호를 암호화하는 기법. 보통 단방향 기법을 사용합니다.salt(이하 조미료): 비밀번호를 해싱할 때 Rainbow Table(무지개 공격!)을 막기 위해 사용하는 기법해싱(Hasing)해싱은 단방향과 양방향 두 종류가 있는데, 비밀번호 암호화 시에는 단방향 기법을 사용합니다.직접 해싱 해보기SHA256 알고리즘 링크어떤 값을 입력하건 고정된 길이의 해시 결과가 나옵니다.단방향인데 어떻게 맞는지 검증하나요?데이터베이스에 저장된 값은 변경시키지 않고, 사용자 입력값만 해싱하여 두 값이 일치하는지 확인합니다.사용자 입력값SHA256으로 해싱한 값데이터베이스에 저장된 값example50d858e0985ecc7f604..
JWT(JSON Web Token)
·
웹 기초 지식
JWT(JSON Web Token)JWT는 주로 두 가지 경우에 사용합니다.1. 두 개체 사이에서 정보를 안전하게 전달2. 인증 및 권한 JWT는 세션 기반 인증의 문제점을 해결하기 위해 사용합니다.1. 요청마다 세션을 확인해야 합니다.2. 세션을 데이터베이스에 저장하건, 서버에 저장하건 완전한 무상태가 될 수 없습니다.양방향 암호화를 사용하기 때문에 클라이언트에서 해석이 가능합니다. 또한 클라이언트에 토큰을 저장하기 때문에 정보 유출의 위험이 있습니다. 따라서 비밀번호 같이 민감한 정보를 전달하면 안 됩니다. 클라이언트에서 JWT 전송 시 어떤 방법을 사용해도 상관 없습니다.JWT의 구조JWT는 세 부분으로 구성됩니다.header: 토큰의 타입과 사용된 서명 알고리즘을 정의합니다. 보통 어떤 해싱 알고..