홈 › 개발·웹 도구

XOR 암호화·키 추정 해독

키를 알면 ‘키로 XOR’, 모르면 ‘1바이트 키 찾기’나 ‘반복 키 찾기’를 고르세요. 결과는 글자와 16진수로 함께 보여 줘요.

파일은 서버로 전송되지 않고 내 기기에서만 처리돼요
파일을 놓거나 눌러서 고르기파일 내용을 그대로 XOR해요 · 파일은 기기 밖으로 나가지 않아요

XOR 암호는 어떻게 동작하나요

XOR(배타적 논리합)은 두 비트가 다르면 1, 같으면 0이 되는 계산이에요. 데이터의 각 바이트를 키 바이트와 XOR하면 암호가 되고, 같은 키로 한 번 더 XOR하면 원래 데이터로 돌아와요. 키가 데이터보다 짧으면 키를 처음부터 반복해서 써요(반복 키 XOR). 계산이 아주 빨라서 프로그램 안의 설정값이나 문자열을 가리는 데 자주 쓰이고, CTF(해킹 대회 연습 문제)와 악성코드 분석 공부에서도 자주 만나요.

키를 모를 때 찾는 방법

입력과 결과

데이터는 16진수(빈칸·0x 허용), Base64, 일반 글자로 넣거나 파일을 그대로 놓을 수 있어요. 키는 글자나 16진수로 넣어요. 결과는 UTF-8 글자로 읽히면 글자로, 아니면 읽을 수 없는 바이트를 점(.)으로 바꿔 보여 주고, 16진수와 .bin 파일로도 받을 수 있어요. 반복 키 찾기는 큰 파일일 때 앞 4,096바이트로 키를 추정하고 결과는 전체에 적용해요.

한계

자동 추정은 원래 데이터가 영어 글일 때 가장 잘 맞아요. 원래 데이터가 압축 파일이나 이미지처럼 무작위에 가까우면 점수로 고를 수 없어요. 이럴 때는 파일 머리(예: PNG는 89 50 4E 47)를 알고 있다면 ‘키로 XOR’에 그 값을 넣어 키 앞부분을 직접 구해 보세요. 키가 데이터만큼 길고 한 번만 쓰는 무작위 값이면(일회용 패드) 원리적으로 풀 수 없어요. 데이터는 서버로 보내지 않아요.

참고한 자료

자주 묻는 질문

결과 글자 칸에 점(.)이 많이 보여요.

결과가 글자가 아닌 바이트라서 그래요. 16진수 칸이나 .bin 파일로 확인하세요.

키 몇 글자만 틀리게 나와요.

데이터가 짧으면 일부 키 바이트가 대소문자나 비슷한 값으로 바뀌어 나올 수 있어요. 결과에서 틀린 위치를 보고 ‘키로 XOR’에서 키를 고쳐 넣으세요.

한글 글도 풀 수 있나요?

키로 XOR은 어떤 데이터든 돼요. 자동 추정은 영어 통계를 쓰기 때문에 한글 글은 잘 맞지 않을 수 있어요.

함께 쓰면 좋은 도구