스마트 해독 (매직 디코더)
Base64·hex·URL 인코딩·JWT·HTML 엔티티·Base32/58/85·Quoted-Printable·gzip 등을 자동 감지해 한 겹씩 해독하고 감지된 인코딩 체인을 보여줍니다 — CyberChef의 Magic 기능에서 착안했습니다.
알 수 없는 텍스트 — Base64(안에 든 gzip·zlib 포함)·hex·URL 인코딩·JWT·HTML 엔티티·Base32·Base58·Ascii85/Z85·\u나 \x 이스케이프·2진수/10진수/8진수 바이트·Quoted-Printable·UUencode·퓨니코드 — 를 붙여넣으면 자동 감지해 한 겹씩 해독합니다.
텍스트 파일을 이 상자에 끌어다 놓아도 됩니다.
인코딩된 텍스트 자동 해독
알 수 없는 텍스트를 붙여넣으면 어떤 인코딩인지 알아내 해독합니다. Base64(안에 든 gzip·zlib·deflate 포함)인지 hex·URL 인코딩·JWT·HTML 엔티티(HTML 4의 이름 있는 엔티티 전부)·Base32·Base58·Ascii85·Z85·\u나 \x 이스케이프·2진수/10진수/8진수 바이트·Quoted-Printable·UUencode·퓨니코드인지 몰라도 됩니다. 결과가 여전히 인코딩돼 있으면 계속해서 한 겹씩 벗기며 감지한 체인을 보여주고, “한 겹씩 벗겨 낸 모습”에서 각 겹이 남긴 텍스트도 보여 줍니다. 해독 결과가 텍스트가 아니라 파일이면 그렇다고 알려 주고, 앞부분 바이트를 16진수로 보여 주며 파일로 내려받을 수 있게 합니다. 답 아래 한 줄에는 텍스트 답이면 글자 수, 바이트 수, 그리고 바이트당 엔트로피가 그 바이트 수로 나올 수 있는 최댓값과 함께 나옵니다. 텍스트 파일은 파일 열기…로 열어도 되고 입력 상자에 끌어다 놓아도 됩니다.
CyberChef의 “Magic” 기능에서 영감을 받아, 작은 결정론적 감지 파이프라인을 전부 브라우저에서 실행합니다. 입력은 업로드되지 않으므로 토큰 등 민감한 문자열에도 안전합니다.
자주 묻는 질문
어떤 인코딩을 감지하나요?
JWT, URL 인코딩(%XX), HTML 엔티티, 16진수, Base64 / Base64URL(안에 든 gzip·zlib·raw deflate는 한 겹으로 더 풀어 냄), Base32, Base58, Ascii85, Z85, \u·\x 이스케이프, 2진수·10진수·8진수 바이트, Quoted-Printable, UUencode, 퓨니코드 — 최대 여러 겹까지 체인으로 해독합니다.
“인코딩을 감지할 수 없다”고 나오는 이유는?
입력이 이미 평문처럼 보이거나 지원 범위를 벗어난 형식입니다. 해시(16진수)·bcrypt 해시·UUID·IP나 MAC 주소·이메일 주소·URL·유닉스 타임스탬프·PEM 블록·SSH 공개 키·JSON·AWS 액세스 키 ID처럼 페이지가 아는 모양이면 “해독할 것이 없습니다 —” 뒤에 무엇으로 보이는지 대신 알려 주고, 해시라면 해독할 수 없고 비교만 할 수 있다고 덧붙입니다. 바이너리 노이즈로 해독되는 값은 훼손을 막기 위해 평문으로 취급됩니다. 다만 바이트가 PNG·PDF·ZIP 같은 알려진 파일처럼 시작하거나, = 패딩이 붙은 Base64·UUencode·Ascii85처럼 헷갈릴 수 없는 인코딩에서 나왔다면 파일로 내려받을 수 있게 보여 줍니다.
토큰을 붙여넣어도 안전한가요?
네. 전부 브라우저에서 로컬로 실행되며 어디로도 전송되지 않습니다. 다만 본인 소유가 아닌 실제 비밀은 절대 공유하지 마세요.
Base64 안에 gzip이 들어 있거나, 해독하면 파일이 나오면 어떻게 되나요?
바이트가 gzip이나 zlib 헤더로 시작하는 Base64는 한 겹으로 따로 풀어 내며, 체인에는 Base64 + gzip이나 Base64 + zlib으로 나옵니다. 헤더가 없는 raw deflate는 일반 Base64로 풀리지 않을 때 시도합니다. 풀었을 때 크기 한도를 넘는 겹은 풀지 않고, 그 바이트를 원래 모습인 .gz 파일로 내려받을 수 있게 합니다. 해독 결과가 파일이면 그렇다고 알려 주고 — 크기와, 알려진 형식으로 시작하면 .png 같은 파일 종류 — 앞부분 바이트를 16진수로 보여 주며, 복사 대신 파일 다운로드 버튼을 둡니다.
해석을 잘못 골랐거나, 여러 줄을 한꺼번에 해독하려면 어떻게 하나요?
입력을 여러 가지로 읽을 수 있으면 “다르게 읽을 수도 있습니다”에 다른 해석이 해독 체인과 답의 앞부분과 함께 나오고, “이 해석 쓰기”를 누르면 답·단계·복사가 그 해석으로 바뀝니다 — 65 66 67은 먼저 16진수 efg로 읽히고, 한 번 누르면 10진수 바이트 ABC로 읽힙니다. 순서가 유일한 순위이고, 해석에 확률을 붙이지는 않습니다. “한 겹씩 벗겨 낸 모습”은 마지막 전의 각 겹이 남긴 텍스트를 보여 줍니다. “줄마다 따로 해독하기”를 켜면 줄마다 제자리에서 해독하고, 해독되지 않는 줄은 그대로 두며, 몇 줄을 해독했는지 알려 줍니다.
파일을 끌어다 놓거나, 답이 얼마나 무작위해 보이는지 알 수 있나요?
네. 입력 상자에 끌어다 놓은 텍스트 파일은 파일 열기…로 연 것과 똑같이 — 같은 파일 형식, 같은 크기 한도, 인코딩 판별까지 — 읽고, 그 밖의 파일은 텍스트 파일이 아니라며 받지 않습니다. 앞 파일을 읽는 동안 다른 파일을 놓으면 나중 것이 이깁니다. 답 아래 한 줄에는 텍스트 답이면 글자 수, 바이트 수, 그리고 바이트당 섀넌 엔트로피가 그 바이트 수로 나올 수 있는 최댓값과 함께 나옵니다. 파일로 나온 답은 그 바이트로 잽니다. 최댓값에 가까운 답은 글이라기보다 압축되거나 암호화된 데이터처럼 무작위한 바이트로 보입니다.