해싱? 암호화의 기본
모든 값에 대해서 해시 값을 계산하는데 오래걸리지 않아야한다.
최대한 해시 값을 피해야하며, 모든값은 고유한 해시 값을 가진다.
아주 작은 단위의 변경이라도 완전히 다른 해시값을 가져야한다.
대표적인 해시알고리즘은 SHA1 ,
SH256이 요즘 핫하다.
암호화 해야하는 값에 어떤 "별도의 값" 을 추가하여 결과를 변형하는것
Salt는 유저와 패스워드 별로 유일한 값을 가져야한다.
사용자 계정을 생성할 대와 비밀번호를 변경할 때 마다 새로운 임의의 salt를 사용해서 해싱해야한다.
Salt는 절대 재사용하지 말아야한다.
Salt는 DB의 유저 테이블에 같이 저장되어야 한다.
클라이언트가 이메일,패스워드 보냄
서버가 디비에서 솔트값과 해시화된 비밀번호를 가지고
db에저장된 비밀번호+salt를 해싱한 값이
클라이언트로부터 받은 해시화된 비밀번호와 같은지 비교
확인이되면 데이터를 내려줌