UUID와 해시는 언제 쓸까? 새 식별자와 파일 비교의 차이
먼저 알아둘 내용
새 항목에 식별자를 붙이려면 UUID를, 같은 데이터인지 비교하려면 같은 알고리즘의 해시를 사용하세요. UUID의 표기 변경과 해시의 입력 변경은 결과에 미치는 영향이 다릅니다.
적용 범위Tooliv의 UUID v4와 텍스트 MD5·SHA-1·SHA-256·SHA-512, 파일 SHA-256 계산을 기준으로 합니다. 사용자 인증이나 비밀번호 저장 기능을 제공하지 않습니다.
바로 적용하기
이 글의 목차 4
생성할 값의 역할을 먼저 정하세요
| 하려는 일 | 사용할 값 | 이유 |
|---|---|---|
| 새 게시물이나 작업에 ID 부여 | UUID | 기존 내용과 독립된 식별자 생성 |
| 받은 파일과 배포 파일 비교 | 같은 알고리즘의 해시 | 파일 바이트를 기준으로 대조 |
| 같은 텍스트를 다시 계산 | 해시 | 같은 입력과 알고리즘이면 같은 결과 |
| 계정 비밀번호 저장 | 별도 비밀번호 해싱 설계 | 이 도구의 단순 해시만으로 구성하지 않음 |
UUID와 해시 모두 긴 문자열처럼 보이지만 역할이 다릅니다. 파일 이름에 새 UUID를 붙여도 파일 내용이 같은지 판단할 수 없고, 같은 내용의 해시를 ID로 쓰면 같은 입력에서 같은 값이 나옵니다.
UUID의 대문자·하이픈 옵션은 표기를 바꿉니다
Tooliv는 브라우저의 randomUUID를 사용해 UUID v4를 생성합니다. v4에는 버전·변형 정보를 제외한 122비트가 무작위 값에 사용됩니다. 구조는 RFC 9562에 정의되어 있습니다.
기본적인 하이픈 형식은 8-4-4-4-12자리의 16진수 묶음입니다. 대문자로 바꾸거나 하이픈을 없애도 새로운 무작위성을 추가하는 것은 아닙니다. 다만 받는 API나 데이터베이스의 입력 검증이 특정 문자열 형식을 요구할 수 있으니 저장 규칙을 맞추세요.
충돌 가능성이 작다는 성질과 서비스에서 중복을 처리하는 책임은 별개입니다. 데이터베이스에는 필요한 고유성 제약을 두고 오류 처리 방식을 정하세요. 이 도구는 UUID v4를 한 번에 최대 20개 만들며, v7처럼 시간 순서 성질을 갖는 다른 버전을 선택하는 기능은 없습니다.
해시 비교에서는 눈에 안 보이는 입력도 중요합니다
Tooliv의 텍스트 해시는 입력을 UTF-8 바이트로 읽습니다. abc와 그 뒤에 줄바꿈이 붙은 abc\n은 서로 다른 입력입니다. abc의 SHA-256은 다음과 같으며 JavaScript 또는 일반적인 해시 구현에서 직접 계산해 비교할 수 있습니다.
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
줄바꿈을 추가하면 다른 결과가 나옵니다. 복사한 텍스트의 앞뒤 공백, 줄바꿈, 파일의 BOM도 확인해야 합니다. 파일 이름을 텍스트 입력란에 넣는 것은 파일 자체의 해시를 계산하는 작업과 다릅니다. 파일은 파일 입력에서 선택하세요. 현재 파일 경로는 SHA-256만 계산합니다.
MDN의 digest 문서는 해시가 입력 데이터에서 고정 길이 값을 만드는 방식임을 설명합니다. 같은 알고리즘끼리 전체 값을 비교해야 하며 일부 앞자리만 맞는 것으로 확인을 끝내지 마세요. 비교 기준값도 배포자의 신뢰할 수 있는 경로에서 받아야 합니다.
해시는 암호화나 로그인 권한이 아닙니다
SHA-256 결과를 만들었다고 원문을 복호화할 수 있는 암호문이 되는 것은 아닙니다. 반대로 비밀번호에 SHA-256 한 번을 적용해 저장하는 설계도 적절하지 않습니다. OWASP 비밀번호 저장 지침은 비밀번호 전용의 느린 해싱 방식과 고유한 salt를 설명합니다. SHA-1은 암호학적 보안 용도로 사용하지 말아야 한다고 MDN도 명시합니다.
새 항목을 구분하려면 UUID 생성기, 입력 데이터의 차이를 확인하려면 해시 생성기로 돌아가 목적에 맞는 값을 만드세요.
내 조건으로 직접 확인해 보세요
읽은 내용을 필요한 도구에 적용해 보세요.
출처와 확인 기준
아래 자료와 도구의 현재 동작을 기준으로 작성했습니다. 제도·제품별 조건은 연결된 공식 안내에서 다시 확인하세요.