Git의 커밋 ID는 SHA-1 해시입니다. 각 커밋의 내용을 해시해서 고유한 식별자를 만듭니다. Git의 무결성과 분산 버전 관리의 핵심입니다.
커밋 해시 생성 원리
커밋의 메타데이터(작성자, 날짜, 메시지)와 파일 내용을 모두 포함해서 SHA-1 해시를 생성합니다. 커밋 내용이 조금만 달라도 해시가 완전히 바뀝니다.
해시 생성기에서 텍스트를 조금만 바꿔도 해시가 달라지는 것처럼요.
왜 해시를 쓰나
해시는 내용을 기반으로 하기 때문에, 같은 내용의 커밋은 어디서 만들어도 같은 해시를 가집니다. 분산 환경에서 동일성을 확인할 수 있습니다.
또한 커밋 히스토리의 무결성을 보장합니다. 과거 커밋이 수정되면 해시가 바뀌고, 그 이후 모든 커밋도 바뀌어야 합니다.
SHA-1 취약점
SHA-1에 충돌이 발견되어 Git은 점차 SHA-256으로 전환 중입니다. 온라인 해시 도구에서 SHA-1과 SHA-256을 비교해보세요. Git 사용자는 평소에 해시를 의식하지 않지만 내부적으로 해시가 핵심 역할을 합니다.
알고리즘별 특징 이해하기
해시 생성기에서 여러 알고리즘을 선택할 수 있는데, 각각 언제 쓰면 좋을까요? MD5는 가장 빠르지만 보안에 취약해서 단순 체크섬이나 해시 테이블용으로만 씁니다. SHA-256은 현재 가장 널리 쓰이는 표준으로, 보안과 속도의 균형이 좋습니다. SHA-512는 64비트 시스템에서 오히려 SHA-256보다 빠를 수 있고, 더 긴 해시값이 필요할 때 씁니다. 비밀번호 저장에는 이런 일반 해시 대신 bcrypt나 Argon2 같은 전용 알고리즘을 사용해야 합니다.
온라인 도구 사용 시 주의점
민감한 정보는 온라인 해시 생성기에 입력하지 마세요. 실제 비밀번호나 개인정보는 로컬에서 처리하는 게 안전합니다. 테스트용 데이터나 공개해도 되는 정보만 온라인 도구에 입력하는 게 좋습니다. 해시값 자체는 역산이 어렵지만, 원본 데이터가 서버에 남을 수 있으니까요.