해시가 뭔가요
파일을 다운로드할 때 MD5나 SHA-256 값이 같이 있는 경우가 있습니다. 확인하라는데 뭘 어떻게 하는 건지 모르겠습니다. 해시의 개념과 데이터 무결성 검증 방법을 알려드릴게요.
해시 함수란
어떤 데이터를 고정된 길이의 값으로 바꿔줍니다. 같은 입력은 항상 같은 출력이 나옵니다. 조금만 달라도 완전히 다른 값이 됩니다. 역으로 원본을 알아내는 건 거의 불가능합니다. 디지털 지문 같은 역할을 합니다.
MD5와 SHA
MD5는 128비트 해시를 만듭니다. 오래되어서 보안 목적으로는 취약합니다. SHA-256은 256비트로 더 안전합니다. 블록체인에서도 SHA-256을 씁니다. 보안이 중요하면 SHA-256 이상을 사용하세요.
무결성 검증
파일을 다운로드한 후 해시를 계산합니다. 배포자가 공개한 해시와 비교합니다. 같으면 파일이 손상되지 않은 겁니다. 다르면 다운로드가 잘못되었거나 변조된 겁니다. 해시 생성기로 값을 계산할 수 있습니다.
비밀번호 저장
웹사이트는 비밀번호를 해시로 저장합니다. 원본 비밀번호를 저장하면 유출 시 위험합니다. 해시만 저장하면 원본을 알기 어렵습니다. 로그인할 때 입력값의 해시와 비교합니다. 솔트를 추가하면 더 안전합니다.
실무 활용
배포 파일에 해시를 같이 공개하세요. 데이터 중복 제거에도 해시를 씁니다. 캐시 키 생성에 활용하기도 합니다. git도 내부적으로 SHA를 사용합니다.
주의사항
MD5는 충돌 공격에 취약합니다. 보안 목적이면 SHA-256을 쓰세요. 해시는 암호화가 아닙니다. 비밀번호 생성기로 강력한 비밀번호를 만들고 패스워드 생성들을 활용하세요.