해시 생성기
문자열의 SHA-1·256·384·512 해시를 브라우저에서 생성해요.
이럴 때 쓰세요
이렇게 사용하세요
결과가 예상과 다를 때
결과가 예상과 달라요
단위와 기준을 먼저 확인해 주세요. 값을 바꾸면 결과가 바로 갱신돼요.
처음 값으로 되돌리고 싶어요
초기화를 누르면 처음 상태로 돌아가요.
자주 하는 실수
- 눈에 안 띄는 줄바꿈 하나가 해시를 통째로 바꿉니다. abc와 줄바꿈이 붙은 abc의 SHA-256은 전혀 다른 값이라, 명령어 출력을 그대로 붙여 넣으면 대조가 어긋납니다. 해시 문자열만 옮기세요.
- SHA-1을 비밀번호를 숨기는 용도로 쓰지 마세요. NIST는 SHA-1을 디지털 서명에 허용하지 않는 알고리즘으로 분류했습니다. 확인이 필요하면 SHA-256 이상을 고르세요.
- 서버마다 저장된 해시가 다르면 대조가 불가능합니다. bcrypt나 scrypt, Argon2처럼 사용자마다 다른 값(salt)이 붙는 방식은 문자열을 그대로 해시해 재현할 수 없습니다.
- http로 열면 결과가 아예 나오지 않습니다. Web Crypto API는 보안 컨텍스트에서만 동작하며, https 또는 localhost가 아니면 digest 호출이 거부됩니다.
계산 근거
FIPS 180-4가 정의한 SHA-1·256·384·512 규격을 따릅니다. 입력 문자열을 UTF-8 바이트 배열로 바꿔 Web Crypto API에 넘기고, 반환된 바이트열을 16진수 두 자리씩 이어 붙입니다. 해시는 단방향이라 원문을 복원할 수 없습니다.
실제로 계산해 보면
SHA-256으로 abc를 해시하면 어떤 값인가요?
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad가 나옵니다. FIPS 예제 벡터와 같은 값이 나오면 정상 동작입니다. 다른 도구는 대문자로 보여도 같은 값이니 비교할 때 표기 형식만 맞추면 됩니다.
아무것도 넣지 않고 계산하면요?
빈 문자열의 SHA-256은 e3b0c442...2b855, SHA-1은 da39a3ee...80709입니다. 칸에 공백 하나 남아 있어도 값이 바뀌므로 빈 입력인지 먼저 확인하세요.
해시 길이는 알고리즘마다 얼마나 다른가요?
SHA-256은 16진수 64자, SHA-384는 96자, SHA-512는 128자입니다. 줄바꿈을 섞어 옮기면 값이 깨지니 한 줄로 이어 붙이세요. SHA-512를 Base64로 옮기면 공백 없는 88자가 됩니다.
더 궁금한 것
해시로 비밀번호를 안전하게 저장할 수 있나요?
아니요. SHA 계열은 빠른 해시라 GPU로 초당 수십억 번씩 시도할 수 있습니다. 비밀번호는 bcrypt나 scrypt, Argon2처럼 느리고 메모리를 먹는 방식으로 해시하고, 임의 문자열을 입력값에 붙입니다. 그런 해시는 문자열을 직접 해시해 재현되지 않습니다.
SHA-1과 SHA-256 중 무엇이 더 안전한가요?
충돌 저항 기준으로는 SHA-256이 압도적입니다. SHA-1은 서로 다른 두 입력이 같은 해시를 갖는 사례가 발표된 뒤 그 해시로 위조 서명이 만들어졌습니다. 호환성 확인에만 남아 새 설계에는 권장되지 않습니다.
해시값만 보관하면 원문이 유출되지 않나요?
긴 임의 문자열이라면 사실상 복원이 어렵습니다. 다만 짧은 문장은 유출된 비밀번호 목록과 대조하면 드러납니다. 파일 무결성 확인에는 SHA-256이 유용합니다. 한 바이트만 달라져도 값 전체가 바뀌니 훼손을 바로 찾습니다.
알아둘 경계값
- 윈도우 메모장에서 복사한 글은 줄마다 캐리지 리턴이 함께 들어 있어 유닉스 개행 원본과 전혀 다른 해시가 나와요. 개행 형식을 먼저 통일한 뒤 대조하세요.
- 입력칸 앞뒤에 붙은 공백과 줄바꿈도 해시에 그대로 들어가요. 복사한 값의 길이가 의도한 문자 수와 같은지 먼저 세어 보세요.
- 해시 계산은 비동기로 돌아가 수만 자 입력 후 버튼을 연타하면 마지막 클릭 결과만 남아요. 한 번 누르고 결과가 바뀔 때까지 기다리세요.
- 같은 화면 글자라도 정규화 방식이 다르면 바이트가 달라 해시가 달라져요. 원문 파일 대조에는 텍스트 복붙 대신 파일 자체를 기준으로 삼으세요.
- 알고리즘 선택값이 SHA-1에 머문 채로 상대방 SHA-256 값과 대조하면 절대 맞지 않아요. 대조 전에 선택된 알고리즘 이름을 먼저 맞춰 보세요.
- 앞 8자만 보고 같다고 넘기면 뒷부분 변조를 놓쳐요. 64자 전체를 끝까지 비교해 확인하세요.
결과를 믿기 전 확인 목록
- 주소창 자물쇠 표시가 있는 안전 연결 상태에서 실행되는지 확인하세요.
- 알고리즘 선택값과 상대방 명세의 알고리즘 표기가 같은지 대조하세요.
- 입력값 길이를 세어 의도한 문자 수와 같은지 확인하세요.
- 개행 포함 여부는 마지막 문자부터 거꾸로 검사하세요.
- 출력이 소문자 16진수인지 확인하고 대문자 체계와 섞어 비교하지 마세요.
- SHA-256 출력이 정확히 64자인지 세어 보고 잘림을 확인하세요.
- 복사한 해시에 앞뒤 공백이나 줄바꿈이 붙지 않았는지 확인하세요.
- 개행 형식이 의심스러우면 다른 편집기에서 복사해 다시 계산하세요.
- 대조 상대방에게 원본 개행과 인코딩 조건을 함께 물어보세요.
자주 묻는 질문
MD5는 없나요?
취약한 알고리즘이라 안전한 SHA 계열만 제공합니다.
MD5는 없나요?
MD5는 충돌이 발견된 취약 알고리즘이라 제공하지 않아요. SHA-256 이상을 쓰세요.