해시(Hash) – 해시값, 해시값 충돌

CODEDRAGON Security/InformationSecurity

반응형

   

   

   

해시(Hash)

하나의 문자열을 이를 상징하는 더 짧은 길이의 값이나 키로 변환하는 것입니다.

   

   

해시값 확인

코드과 코드드래곤은 평문의 길이가 다르지만 해시 결과는 32개의 문자로 길이가 모두 같습니다.

또한 코드드래곤과 코드드레곤라는 평문은 단어 하나만 다를 뿐인데 해시 결과가 완전히 다른 것을 확인할 수 있습니다.

이와 같은 결과는 해시값을 통해 해시되기 전의 값을 추측하는 것이 불가능하다는 해시의 특징을 보여주고 있습니다.

평문

해시(MD5)값

코드

da6674f26bdd402f5bc9d93a214338a6

코드드래곤

0947932cdb932ef09eb4cda57438eb38

코드드레곤

e79e5ec1b61d7cd13d231aeb20f9de2e

   

   

   

해시값 충돌

해시 알고리즘 중 하나인 MD5는 32개의 16진수로 이루어져 있으며, 16의 32승 개의 결과 값이 존재합니다.

하지만, 우리가 만들어내는 데이터 는 이를 훨씬 능가하여 무한에 가깝습니다.

MD5의 해시 결과값 = 340282366920938463463374607431768211456


다른 데이터를 입력해도 해시 결과값이 같을 수 있는데 이를 충돌이라고 합니다. 충돌이 자주 일어나는 해시는 좋은 해시가 아닙니다.

   

   

해시 알고리즘의 종류

  • MD
  • SHA