2013-10-10 3 views
5

나는 사진 안에 텍스트를 숨기는 서비스를 만들었습니다. 예 :PHP로 사진 안에 비밀을 숨기기

$img_name = "myimage.jpeg"; 
$orig_contents = file_get_contents($img_name); 
$msg = "My secret."; 

$fp = fopen($img_name, "wb"); 
fwrite($fp, $orig_contents . $msg); 
fclose($fp); 

내가 궁금한 점 :이 방법을 사용하여 사진 속에 숨길 수있는 정보의 양은 어느 정도입니까? 예를 들어 이미지 파일에 소설 장을 포함시킬 수 있습니까? 이미지를 손상시키지 않으면 서 상당히 큰 텍스트 블록을 추가했지만 PHP 또는 이미지보기 응용 프로그램에이 제한을 두는 지 궁금합니다.

은 (추신 : 나는 스테 가노 그래피의이 유형은 안전하지 않은 것을 알고, 난 그냥 재미를 위해이 일을하고 있습니다.)

+0

무슨 이상한 일이 ...! –

+0

는 너 자신을 간단하게 시험 할 수있는 무언가를 좋아한다. –

+0

하하. 가자. 친구끼리 메시지를 교환하는 것은 매우 재미 있습니다. :) 누군가가 건설적인 제안을한다면, 나는 정말로 감사 할 것입니다. – hawkharris

답변

7

당신은 Steganography에서 살펴 보셔야합니다. 또한 이미지에 데이터가 숨겨져 있지 않은지 확인하십시오. 텍스트 편집기로 이미지를 열 수있는 누구나 파일의 어딘가에 텍스트를 볼 수 있습니다 (이 경우 결국, 결국 더 나빠집니다).

    일부 decent Algorithm과 데이터 암호화
  1. 강력한
  2. 의사 - 랜덤에있는 파일을 통해 데이터를 분배하는 기능을 만들기 : 내가 당신이라면, 다음을 수행 할 것 그 방법으로 누군가는 당신이 뭔가를 비밀로하려고한다는 것을 알아 차릴 것입니다. 일반 비트 맵 이미지에서 원본 이미지와 숨겨진 데이터를 비교하면 인간의 눈으로는 인식되지 않으므로 각 픽셀의 마지막 비트를 사용하여 정보를 저장할 수 있습니다.
  3. 그렇지 않으면 당신은 내가이 그것을 할 수있는 가장 안전한 방법은 아니라고 생각 몇 가지 심각한 문제 :
+1

NSA 회원. - 너무 늦었 어. –

+0

+1 점은 3 점입니다. –

0

를 얻을 수 있습니다, NSA는이 글을 읽는하지 않는기도, 당신이 정말로 이미지에 문자열을 숨기려면, 당신은 아마 10 픽셀마다 픽셀을 변경하기 위해 특정 패턴을 사용할 것입니다. 아이디어는 정수형 배열로 이미지를 변환하고 배열을 반복하며 매 10 픽셀마다 ascii character 수로 값을 변경합니다.

각 10 픽셀을 1 회 변경하면 많은 잡음이 발생하지 않습니다.

인코딩을보다 안전하게 사용하려면 @fvdalcin과 같이 ascii를 인코딩 할 때 자신 만의지도를 사용하십시오.

4

아니요, PHP 또는 JPEG format에 의해이 방법을 사용하여 이미지에 추가 할 수있는 데이터의 양에 대한 제한이 없습니다. 이것은 JPEG 포맷이 일부 마커까지 파일의 시작 부분에 모든 이미지 데이터를 저장하기 때문에 가능합니다. 마커 다음에 모든 데이터는 예를 들어 미리보기 이미지와 같은 것으로 가정됩니다.

cool trick (GIF 이미지와도 호환 됨)은 이미지의 끝에 ZIP 파일을 추가 할 수 있으며 파일이 JPEG 및 ZIP 파일로 모두 작동한다는 점에서 다릅니다. 파일 확장자 만 변경하면 이미지 처리 프로그램이나 ZIP 프로그램에서 읽을 수 있습니다.

관련 문제