#️⃣ 해시 & 솔트 🧂

은유로그·2021년 10월 24일
0

📚 study

목록 보기
12/21

해시(Hash)

해시

해시함수에 의해 얻어지는 값은 해시값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다. 또한 해시함수를 통해 해시값이 나오는 그 전체적인 과정 자체도 해시라고 부른다.

해시함수

임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 예를 들면 어떤 숫자를 10으로 나누었을 때 그 나머지를 구하는 함수도 해시 함수이다.

해시를 하는 이유?

쇼핑몰을 운영한다고 예를 들어보면 유저의 개인정보, 특히 비밀번호 같은 경우 그대로 데이터베이스에 저장하게 된다면 보안에 크게 취약할 것이다. 애초에 중요한 정보는 암호화를 시켜 데이터베이스에 저장하면 된다.

암호화 : 일련의 정보를 임의의 방식을 사용하여 다른 형태로 변환하여 해당 방식에 대한 정보를 소유한 사람을 제외하고 이해할 수 없도록 알고리즘을 이용해 정보를 관리하는 과정

따라서 보안 목적으로 해시함수 이전 원본 값이 어떤 값이었는지 모르게 하기 위해 사용한다. hash의 뜻은 잘게 자른다 라고한다 ㅎㅎ

해시의 특징

  • 동일한 입력에는 동일한 값이 나온다.
  • 해시값을 구하는데 시간이 오래 걸리면 안되지만 가능은 하다.
  • 아주 작은 단위의 변경이여도 완전히 다른 해시값을 가져야한다.
  • 입력값 길이는 무한인데 출력값 길이는 고정되어 있어서 중복된 암호가 나올 수 있다.

솔트(Salt)

솔트

암호화 해야하는 값에 어떤 별도의 값을 주어 결과를 변형하는 것이다.

솔트의 특징

  • 솔트 없이 암호화만 진행하면 해시값은 늘 동일하다.
    해시값과 원본값을 테이블(rainbow table)로 만들어 해독할 수 있다.
  • 알고리즘이 노출되더라도 원본값을 보호할 수 있도록 하는 안전장치이다.
  • 솔트의 재사용은 없어야 한다.

해시 + 솔트

profile
๑•‿•๑

0개의 댓글