SHA-1 해시 계산기
입력한 문자열의 SHA-1 해시값을 브라우저에서 실시간으로 계산합니다. SHA-1은 160비트 해시값을 생성하지만, 2017년 SHAttered 공격으로 충돌이 입증되어 새로운 시스템에는 권장되지 않습니다.
SHA-1 해시란
SHA-1은 임의의 길이를 가진 데이터로부터 160비트의 고정 길이 값을 계산하는 해시 함수입니다. 결과는 40자의 16진수로 표현되며, 같은 입력에서는 언제나 같은 값이 나옵니다. 이 도구는 입력한 문자열의 SHA-1 해시를 브라우저 안에서 실시간으로 계산하며, 입력 내용이 외부로 전송되는 일은 없습니다.
다만 SHA-1은 새로운 보안 용도에는 사용할 수 없습니다. 2017년에 서로 다른 두 파일에서 같은 해시값을 의도적으로 만들어 내는 공격이 실증되었기 때문입니다. 서명이나 인증서, 비밀번호 저장에는 SHA-256 이상을 선택하세요. 이 도구의 용도는 기존 시스템이 출력한 값과의 대조나 알고리즘의 동작 확인에 한정됩니다.
SHA-1 해시 계산 방법
- 문자열 입력하기 해시로 만들 문자열을 입력합니다. 입력과 동시에 계산되어 결과가 표시됩니다.
- 결과 확인하기 40자의 16진수가 표시됩니다. 입력을 한 글자만 바꿔도 전혀 다른 값이 됩니다.
- 복사해서 대조하기 복사 버튼으로 클립보드에 담을 수 있습니다. 기존 값과 맞춰 볼 때 사용하세요.
더 잘 활용하기 위한 팁
- SHA-1은 1995년 NSA가 설계한 160비트 해시 함수
- 2017년 Google과 CWI 암스테르담이 SHAttered 공격으로 실제 충돌 입증
- Git은 내부적으로 SHA-1을 사용했으나 SHA-256으로의 전환을 진행 중
- 새로운 시스템에서는 SHA-256 이상을 사용할 것을 권장
SHA-1 해시 계산의 활용 사례
기존 시스템의 값과 대조하기
SHA-1을 계속 사용하는 시스템이 출력한 값과 일치하는지 확인할 수 있습니다. 전환 작업 중의 검증에 쓸 수 있습니다.
Git의 해시 이해하기
커밋 ID와 같은 40자 형식을 실제로 만들어 확인할 수 있습니다. Git이 어떤 값을 다루는지 파악하는 데 도움이 됩니다.
구현 테스트용 데이터 만들기
해시 처리를 구현했을 때 기댓값으로 쓸 알려진 값을 여기서 준비할 수 있습니다.
해시 함수의 성질 확인하기
입력을 한 글자만 바꿔도 출력이 완전히 달라지는 모습을 직접 관찰할 수 있습니다.
해시 관련 용어
- SHA-1
- 160비트의 해시를 생성하는 함수입니다. 1995년에 표준화되었으나 현재는 안전성이 깨졌습니다.
- 충돌
- 서로 다른 두 데이터가 같은 해시값을 갖는 상태입니다. SHA-1에서는 의도적으로 만들 수 있음이 실증되었습니다.
- SHAttered
- 2017년에 발표된 SHA-1에 대한 충돌 공격의 이름입니다. 같은 해시를 가진 두 PDF가 실제로 만들어졌습니다.
- 16진수 표기
- 0부터 F까지의 기호로 수를 나타내는 방법입니다. SHA-1의 160비트는 40자의 16진수로 표현됩니다.
- SHA-256
- 256비트의 해시를 생성하는 함수입니다. 현재도 안전하다고 평가되며, 새로운 용도에서는 이 이상을 선택합니다.
자주 묻는 질문
여담 ― SHAttered: 9,223경 회 계산으로 입증된 충돌 공격
SHAttered = Google + CWI 암스테르담 2017년, 99,000코어 2년 이상 가동
SHA-1이 '이론적으로 깨질 수 있다'에서 '실제로 깨졌다'로 전환; GitHub·Google 등 SHA-1 의존성 폐기 가속
임베디드·레거시 시스템에 SHA-1 여전히 잔존