ImageSteg · 이미지 또는 오디오 파일에 데이터 숨기기

steghide 0.5.1의 두 방식인 BMP·PNG용 픽셀/LSB와 JPEG용 DCT 계수를 브라우저로 옮겼으며 PCM WAV와 MP3 오디오도 지원합니다. 파일이나 메시지를 숨긴 후 암호문구로 다시 추출하세요.

100% 로컬 처리

파일과 비밀 정보는 이 기기를 벗어나지 않습니다. 디코딩, 삽입, 암호화, 추출은 모두 이 브라우저 탭 안에서 실행됩니다. 서버에 업로드하지 않으므로 서버에서 유출될 데이터도 없습니다.

1 · 표지 이미지 또는 오디오

이미지 또는 오디오 파일을 놓으세요 JPEG, PNG, WebP, GIF, BMP, PCM WAV 또는 MP3 · 로컬 디코딩, 업로드 없음

큰 파일일수록 더 많이 저장합니다. 이미지는 약 8픽셀당 1바이트, PCM WAV는 16샘플당 1바이트, MP3는 오디오 프레임의 미사용 공간을 제공합니다.

2 · 숨길 데이터

선택한 파일 없음

3 · 암호문구 & 옵션

간단한 세 단계

이미지나 오디오 파일 안에 파일을 숨기는 방법

설치나 업로드 없이 이미지, WAV 또는 MP3를 선택하고 비밀 정보를 추가한 후 결과를 저장하세요.

1

표지 이미지 또는 오디오 파일 선택

데이터를 담을 이미지, WAV 또는 MP3를 선택하거나 놓거나 붙여 넣으세요. 큰 파일일수록 더 많이 저장할 수 있으며 복잡한 사진이나 음악이 변화를 가장 잘 감춥니다.

2

비밀 정보와 암호문구 추가

파일을 첨부하거나 메시지를 입력한 후 암호문구를 정하세요. 암호문구는 데이터를 분산할 위치를 결정하며 선택적으로 암호화에도 사용됩니다.

3

다운로드 및 공유

steghide 호환성이 필요하면 BMP로, 작은 파일이 필요하면 PNG로 저장하세요. 이미지와 암호문구가 있는 사람은 누구나 데이터를 추출할 수 있습니다.

브라우저에서 사용하는 steghide 알고리즘과 오디오 매체

픽셀, DCT 계수 및 오디오 샘플의 그래프 매칭

ImageSteg는 steghide 0.5.1의 TypeScript 이식 버전으로 BMP·PNG용 픽셀/LSB 방식과 JPEG용 DCT 방식을 모두 지원합니다. 같은 방식으로 PCM WAV에 데이터를 담고 MP3 프레임 끝의 미사용 공간도 활용합니다. 어떤 방식도 파일을 단순히 순서대로 채우지 않습니다.

그래프 기반 삽입

샘플을 정점으로 묶고 최소 가중치 매칭으로 변경할 대상을 결정하므로 숨긴 값 하나당 약 한 개의 샘플만 변경됩니다.

실제 JPEG DCT 스테가노그래피

내장 JPEG 엔트로피 코덱이 양자화된 DCT 계수를 읽고 패리티에 데이터를 숨긴 후 다시 인코딩합니다. steghide의 libjpeg가 멈추는 처리 지점과 같습니다. 베이스라인과 프로그레시브 파일 모두 지원합니다.

암호문구 기반 분산

MD5를 시드로 사용하는 순열이 이미지 전체에 데이터를 분산하므로 숨긴 페이로드는 예측 가능한 순서로 저장되지 않습니다.

압축과 체크섬

삽입 전에 zlib로 페이로드를 줄이며 선택적 CRC32 체크섬으로 추출 결과의 신뢰성을 즉시 확인할 수 있습니다.

선택적 AES-256 암호화

libmcrypt와 동일한 키 파생 방식의 Rijndael CBC 모드가 누군가 이미지를 의심하더라도 페이로드의 기밀성을 지킵니다.

사용 시 참고

용량, 속도 및 호환성

이미지 픽셀 안에 데이터를 숨길 때의 실제 제한.

BMP · PNG픽셀 / LSB 방식
JPEGDCT 계수 방식
0.2 %변경되는 샘플의 일반적인 비율
업로드 0회모든 데이터가 브라우저에 남음

호환성: 비트 배치, 샘플 순열, Rijndael/CBC 암호화는 steghide 0.5.1을 따르므로 BMP와 JPEG 출력을 다음 명령으로 읽을 수 있습니다: steghide extract -sf image.bmp -p passphrase 또는 -sf image.jpg. steghide 명령줄 도구로 만든 파일도 여기서 읽을 수 있습니다. 출력 형식은 표지와 일치합니다. JPEG 표지는 JPEG만 담을 수 있는 계수에 페이로드를 저장하므로 JPEG를 출력합니다. 픽셀 표지에는 BMP와 PNG를 제공하지만 steghide CLI는 PNG를 읽지 못합니다.

JPEG 방식 상세

steghide의 JPEG 지원은 libjpeg의 다음 함수를 호출합니다: jpeg_read_coefficients(). 이 함수는 허프먼 디코딩 직후, 역양자화와 IDCT 이전에 디코딩을 멈추어 원시 양자화 DCT 계수를 얻습니다. 브라우저는 해당 API를 제공하지 않으므로 이 페이지는 기본 디코더 대신 자체 JPEG 엔트로피 코덱을 제공합니다. 베이스라인과 프로그레시브 파일 및 연속 근사 정밀화 스캔을 지원합니다.

PNG에 같은 알고리즘 적용

삽입기는 파일 형식을 보지 않고 디코딩된 픽셀 배열만 처리하므로 steghide의 BMP/LSB 방식을 PNG에도 그대로 적용합니다. 실제 사용에서는 네 가지가 중요합니다:

질문과 답변

ImageSteg 자주 묻는 질문

ImageSteg는 무료인가요?

네. 데이터 숨기기와 추출은 가입, 워터마크, 인위적인 파일 크기 제한 없이 무료입니다.

이미지나 비밀 파일이 업로드되나요?

아니요. 디코딩, 삽입, 압축, 암호화는 브라우저의 JavaScript와 WebCrypto로 로컬 실행됩니다. 73hi 서버에는 아무것도 전송하지 않습니다.

어떤 이미지 형식을 지원하나요?

브라우저가 디코딩할 수 있는 이미지는 픽셀 표지로 사용할 수 있으며 베이스라인과 프로그레시브 JPEG는 steghide의 DCT 방식으로 처리됩니다. 출력은 표지를 따릅니다. JPEG는 JPEG로, 픽셀 표지는 BMP와 PNG 사본으로 출력합니다. steghide 명령줄 도구는 BMP와 JPEG를 읽지만 PNG는 읽지 못합니다.

JPEG 모드는 어떻게 데이터를 숨기나요?

steghide 명령줄 도구처럼 양자화된 DCT 계수에 숨깁니다. 페이지의 JPEG 엔트로피 코덱이 스캔을 계수 단계까지 디코딩하고 패리티를 수정한 후 다시 인코딩합니다.

프로그레시브 JPEG를 사용할 수 있나요?

네. 주파수 선택과 연속 근사 정밀화를 포함한 전체 스캔 순서로 디코딩하고 같은 방식으로 다시 기록하므로 원래 계수를 담은 프로그레시브 JPEG가 유지됩니다.

산술 코딩된 JPEG는 어떤가요?

읽기를 지원합니다. 허프먼 대신 QM(이진 산술) 코딩을 사용하는 파일(순차 SOF9, 프로그레시브 SOF10)은 libjpeg와 동일한 산술 디코더로 해석하여 같은 계수를 얻습니다. 결과는 steghide와 같이 허프먼 코딩으로 기록합니다.

얼마나 많은 데이터를 숨길 수 있나요?

대략 8픽셀당 페이로드 1바이트에서 헤더, 파일 이름, 선택적 암호화 오버헤드를 뺀 용량입니다. 이미지를 선택하면 사용 가능한 용량을 표시합니다.

steghide 명령줄 도구로 결과를 읽을 수 있나요?

네, BMP로 다운로드하면 가능합니다. 비트 배치, 암호문구 기반 샘플 순열, Rijndael/CBC 암호화는 steghide 0.5.1을 따릅니다.

이미지를 편집한 후 추출에 실패하는 이유는 무엇인가요?

페이로드는 개별 픽셀 값에 저장됩니다. 재압축, 크기 조정, 필터 적용, JPEG 같은 손실 형식 변환은 데이터를 손상시킵니다. 원본 BMP 또는 무손실 PNG 사본을 보관하세요.

같은 이미지에 두 가지 비밀을 숨길 수 있나요?

하나의 파일에 두 번 삽입하는 방식으로는 안 됩니다. 두 번째 작업은 표지 전체에서 새 임의 위치를 골라 첫 페이로드의 일부를 덮어씁니다. 데이터는 암호화 전에 압축되므로 비트 몇 개만 바뀌어도 메시지 전체를 읽을 수 없게 됩니다. 원래 steghide 명령줄 도구도 같습니다. 같은 암호문구를 다시 사용해도 처음부터 같은 위치를 덮어써 가장 최근 메시지만 남습니다. 여러 겹으로 숨기려면 파일을 중첩하세요. 작은 이미지에 첫 비밀을 숨겨 다운로드한 후 그 파일 전체를 두 번째 암호문구로 더 큰 이미지에 숨기세요. 각 층은 변경되는 픽셀이 아닌 보호된 데이터로 전달되므로 바이트 단위로 온전히 유지됩니다.

이미 데이터가 숨겨진 이미지를 열면 데이터가 손상되나요?

아니요. 파일을 불러올 때는 바이트를 읽기만 합니다. JPEG는 역변환이나 재양자화 없이 양자화 DCT 계수를 직접 읽고 픽셀 표지는 무손실로 디코딩하므로 숨긴 데이터는 유지됩니다. JPEG의 엔트로피 코딩을 다시 쓰면 파일 크기가 약간 달라질 수 있지만 페이로드에는 영향이 없습니다. 다른 사람이 만든 파일을 안전하게 열어 내용을 추출할 수 있습니다.

ImageSteg로 저작권을 보호할 수 있나요?

네. 저작권 고지나 소유권 증명을 사진에 직접 삽입할 수 있습니다. 데이터는 픽셀 또는 JPEG 계수에 있으며 일반적으로 볼 때 드러나지 않아 이미지를 공개적으로 공유할 수 있습니다. 누군가 허가 없이 재사용하면 숨긴 표식이 파일에 남아 있습니다. 침해 사실을 기록하려고 같은 이미지를 제3자 플랫폼에 게시할 때 그 사본에도 증거가 담겨 삭제 요청이나 권리 주장에 활용할 수 있습니다.

직접 말하기 부끄러운 메시지를 숨길 수 있나요?

물론입니다. 일상 사진에 “사랑해”처럼 직접 하기 어려운 말을 숨기고 상대방의 생일을 암호문구로 정해 보세요. 사진을 보내 ImageSteg 또는 73hi.com/image-steg.html에서 열도록 안내하세요. 암호문구를 아는 사람만 메시지를 볼 수 있어 말로 표현하는 부담 없이 마음을 전할 수 있습니다.