암호화 식별자
식별할 값을 붙여넣으세요.
데이터베이스 덤프를 수집하다 보면 $2y$10$...이나 5f4dcc3b5aa765d61d8327deb882cf99 같은 문자열을 발견하게 되는데, 크래킹이나 역변환을 시작하기 전에 그것이 무엇인지부터 파악해야 합니다. 이 식별자는 길이, 문자 집합, 구조, 접두사에 관한 휴리스틱을 적용하여 암호문 샘플 뒤에 있을 가능성이 가장 높은 알고리즘이나 인코딩 방식을 추정합니다.
암호문을 식별하는 방법
-
1
샘플을 붙여넣으세요
단일 해시값, 암호문 블롭, 토큰 또는 인코딩된 문자열.
-
2
일치하는 형식 확인하기
결과에는 해당하는 형식이 순위대로 표시됩니다. 가능성이 가장 높은 형식이 먼저 나오고, 이어서 샘플이 될 수 있는 다른 형식이 나옵니다.
-
3
교차 확인
여러 형식이 일치하면 해시 크래커나 디코더로 어떤 것이 올바른지 확인하세요.
-
4
불확실성 유의
샘플 하나만으로는 식별이 거의 확실하지 않으며, 일치하는 항목이 없으면 도구에 그렇게 표시됩니다.
이 도구가 식별하는 형식
16진수 다이제스트는 길이로 식별합니다(대소문자 구분 없음):
| 길이(16진수 문자 수) | 가능성이 가장 높은 형식 |
|---|---|
| 8 | CRC32 또는 기타 32비트 체크섬 |
| 32 | MD5, MD4 또는 NTLM |
| 40 | SHA-1 또는 RIPEMD-160 |
| 56 | SHA-224 또는 SHA3-224 |
| 64 | SHA-256 또는 SHA3-256 |
| 96 | SHA-384 또는 SHA3-384 |
| 128 | SHA-512 또는 SHA3-512 |
예를 들어 d63dc919e201d7bc4c825630d2cf25fdc93d4b2f0d46706d29038d01은 56자이며, “password”라는 단어의 SHA-224 해시입니다.
비밀번호 해시는 접두사와 구조로 식별합니다:
$2a$,$2b$,$2y$: bcrypt(코스트 팩터는 접두사에서 읽음)$1$: md5crypt,$apr1$: Apache MD5(htpasswd)$5$와$6$: sha256crypt와 sha512crypt$y$: yescrypt,$7$와$scrypt$: scrypt$argon2id$,$argon2i$,$argon2d$: Argon2$pbkdf2-sha256$(passlib)와pbkdf2_sha256$(Django): PBKDF2$P$와$H$: phpass(WordPress, phpBB),$S$: Drupal 7*뒤에 16진수 40자가 오는 형식: MySQL 4.1+{SSHA},{SHA}및 그 밖의 일반적인 LDAP 스킴
자주 쓰이는 형식은 결과에 hashcat 모드(-m)도 함께 표시됩니다: MD5 0, NTLM 1000, SHA-1 100, SHA-256 1400, SHA-512 1700, bcrypt 3200, md5crypt 500, sha256crypt 7400, sha512crypt 1800, phpass 400, Drupal 7 7900, MySQL 4.1+ 300, Django PBKDF2-SHA256 10000.
키, 토큰, 식별자:
- PEM 블록(
-----BEGIN ...-----): 개인 키(RSA, EC, OpenSSH, PKCS #8), 비밀번호로 보호된 개인 키, 공개 키, X.509 인증서, 인증서 서명 요청 - OpenPGP ASCII 아머: 암호화된 메시지(
BEGIN PGP MESSAGE), 키 블록, 서명 - OpenSSH 공개 키(
ssh-rsa,ssh-ed25519,ecdsa-sha2-...) - JSON Web Token: 헤더를 디코딩해
alg와typ을 보여 주며,enc필드가 있는 다섯 부분짜리 토큰은 암호화된 JWE로 판단합니다 - UUID와 그 버전(해시가 아닌 식별자)
인코딩(더 구체적인 형식에 해당하지 않을 때만):
- 16진수, Base32, Base64, Base64url(디코딩된 길이를 바이트 단위로 표시) 및 URL(퍼센트) 인코딩.
- 디코딩된 길이가 16바이트의 배수인 16진수 또는 Base64 데이터는 AES 같은 블록 암호의 출력일 수 있으며, 128, 256, 384, 512바이트라면 RSA로 암호화된 데이터나 서명일 수도 있습니다. 16, 20, 28, 32, 48, 64바이트인 Base64 또는 Base32 데이터는 MD5, SHA-1, SHA-2의 원시 해시일 수 있습니다.
식별로 알 수 없는 것
- 100% 확실한 정확한 알고리즘. 64자리 16진수 문자열은 SHA-256 또는 SHA3-256으로 표시되지만, BLAKE2s를 비롯한 다른 256비트 해시도 똑같이 보입니다. MD5, MD4, NTLM 해시는 모두 16진수 32자입니다.
- 어떤 암호로 암호화했는지. 암호화된 데이터는 무작위처럼 보입니다. 길이는 후보를 좁혀 줄 뿐이므로 AES나 RSA는 가능성일 뿐 확실하지 않습니다.
- 키 강도. bcrypt 해시는 접두사에 코스트 팩터를 표시하지만(
$2y$10$= 코스트 10), 실제 비밀번호 자체의 강도는 알려주지 않습니다. - 솔트 적용 여부. 최신 비밀번호 해시(bcrypt, Argon2)는 항상 솔트가 적용되지만, 구형 방식(원시 MD5/SHA)은 적용될 수도, 그렇지 않을 수도 있습니다.
- 평문. 식별은 해시를 되돌리지 않습니다. 크래킹은 별도의 과정이며, 오직 자신의 데이터에 대해서만 합법적으로 수행할 수 있습니다.
식별이 틀리는 경우
- 사용자 지정 접두사가 붙은 토큰. 애플리케이션이 해시를 자체 접두사로 감싸는 경우가 있습니다. 먼저 그 래퍼를 제거하세요.
- 이중 인코딩. 바이너리 해시를 16진수화한 뒤 다시 Base64로 감싼 값은 잘못 식별됩니다. 한 번 디코딩한 뒤 다시 실행해 보세요.
- 흔하지 않은 길이. 잘린 해시(SHA-256의 앞 16자를 ID로 사용한 경우 등)는 위 표의 어떤 다이제스트 길이와도 맞지 않으므로 일반 16진수 데이터로 표시됩니다.
- 여러 값을 한꺼번에 넣은 경우. 한 번에 하나의 값만 확인합니다. 해시 목록을 붙여넣으면 첫 번째 줄만 확인하므로 나머지 값은 하나씩 붙여넣으세요.
사용 사례
- 보안 감사: 암호화 방식 마이그레이션에 앞서 코드베이스 전반의 해시 유형을 목록화합니다.
- CTF 챌린지: 알 수 없는 데이터에 대한 빠른 1차 점검.
- 인시던트 대응: 유출된 자격 증명의 형식을 식별합니다.
- 프레임워크 디버깅: 라이브러리가 어떤 인코딩을 생성하는지 파악합니다.
윤리적 유의 사항
해시 형식을 식별하는 것은 수동적인 조사에 불과합니다. 권한 없이 타인의 해시를 크래킹하는 행위는 대부분의 관할 지역에서 컴퓨터 오용 관련 법률을 위반합니다. 오직 자신이 소유하거나 분석 권한이 있는 해시만을 대상으로 하세요.
자주 묻는 질문
부분적으로는 가능합니다. MD5는 16진수 32자, SHA-1은 40자입니다. 다만 둘의 길이 범위가 같은 경우 해시만으로는 구별할 수 없습니다. 보통은 맥락(데이터베이스 열 이름, 프레임워크 기본값, 유출된 스키마 등)을 통해 판별할 수 있습니다.
아니요. 식별만 수행합니다. 해시를 역산하거나 암호문을 복호화하려면 별도의 도구(그리고 키 또는 크래킹에 필요한 계산 자원)가 필요하며, 이러한 작업은 오직 자신의 자료에 대해서만 합법적으로 수행할 수 있습니다.
Argon2id(또는 높은 코스트 팩터의 bcrypt)가 현재 권장되는 방법입니다. PBKDF2-SHA256과 scrypt도 여전히 허용됩니다. 반면 순수 MD5, SHA-1 또는 솔트 없는 SHA-256은 비밀번호 저장에 안전하지 않습니다.
아니요. 붙여넣은 값은 형식 확인을 위해 당사 서버로 전송되지만 데이터베이스에 저장되지 않으며 페이지 링크에도 추가되지 않습니다. 두 단계 사이에는 이 브라우저 탭에 보관되며, “다시 시작”을 누르면 지워집니다.
관련 도구
숫자-문자 암호
퍼즐, 수수께끼, 방탈출 단서에 쓰이는 A=1, B=2 암호(A1Z26)로 숫자를 문자로, 문자를 숫자로 변환하세요.
파일 해시 계산기
붙여 넣은 텍스트나 파일 내용의 MD5, SHA-1, SHA-256, SHA-512 해시를 계산하여 다운로드와 파일 무결성을 확인하세요.
비즈네르 암호 인코더
키워드를 사용해 고전 비즈네르 암호로 메시지를 암호화하고 복호화하세요. 라틴 문자 A-Z를 이동하며 대소문자, 공백, 문장 부호를 보존합니다.
랜덤 API 키 생성기
서버에서 8~128자의 16진수, base64url, 영숫자 API 키 또는 UUIDv4를 생성합니다.
패스프레이즈 생성기
무작위 일반 단어로 기억하기 쉬운 패스프레이즈를 생성합니다. 단어 수, 구분 문자, 대문자화, 뒤에 붙이는 숫자를 조절할 수 있습니다.
텍스트 암호화 도구
비밀번호를 사용하여 AES 알고리즘으로 문자 메시지를 암호화 및 복호화함으로써 수신자만이 내용을 읽을 수 있도록 합니다.
이 도구는 다른 언어로도 제공됩니다
- Identifikasi Enkripsi [ID]
- Identificateur de chiffrement [FR]
- 暗号化識別子 [JA]
- Identificador de Criptografia [PT]
- ตัวระบุการเข้ารหัส [TH]
- Identificador de Cifrado [ES]
- معرّف التشفير [AR]
- Mã định danh mã hóa [VI]
- Verschlüsselungs-Identifikator [DE]
- Versleutelingsidentifier [NL]
- Krypteringsidentifierare [SV]
- Identyfikator szyfrowania [PL]
- Encryption Identifier [EN]
- Identificatore di Crittografia [IT]
- Идентификатор шифрования [RU]
- Şifreleme Tanımlayıcısı [TR]
- 加密标识符 [ZH]