본문 바로가기
카테고리 없음

인증보안 - Hashing

by 삐약 개발자 2025. 2. 3.

Hashing

암호화 방식 중 하나 임 , 암호화만 가능 (복호화 불가능)
해싱은 해시 함수를 사용하여 암호화를 진행함

해시 함수의 특징
  • 항상 같은 길이의 문자열을 리턴함
  • 서로 다른 문자열에 동일한 해시 함수를 사용하면 반드시 다른 결과값이 나옴
  • 동일한 문자열에 동일한 해시 함수를 사용하면 항상 같은 결과값이 나옴

같은 결과가 나오는 특성을 이용해서 해시 함수를 거치기 이전의 값을 알아 낼수 있도록 정리 해놓은것을 레인보우 테이블 이라고 말함

여기서 Salt (솔트) 를 사용하여 해시 이전의 값에 임의의 값을 더해 데이터가 유출이 되더라도 해싱 이전의 값을 알아내기 어렵게 만드는 기법

비밀번호 + 솔트 해시 함수(SHA1) 리턴 값
‘password’ + ‘salt’ ‘C88E9C67041A74E0357BEFDFF93F87DDE0904214’
‘Password’ + ‘salt’ ‘38A8FDE622C0CF723934BA7138A72BEACCFC69D4’
‘kimcoding’ + ‘salt’ ‘8607976121653D418DDA5F6379EB0324CA8618E6’
해싱의 목적

복호화가 불가능하더라도 사용하는 이유는 동일한 값의 데이터를 사용하고 있는지 여부만 확인하는 목적

즉 해싱은 민감한 데이터를 다우어야 하는 상황에서 데이터 유출의 위험성을 줄이면서 데이터의 유효성을 검증하기 위해서 단방향 암호화 방식임