2011-04-11 5 views
3

이미지가 손상되지 않도록 보장하기 위해 이미지 파일 (구체적으로 PNG)의 내용을 기반으로 고유 한 해시를 만들고 싶습니다. 내가 봤 거든, 그리고 파일을 기반으로 해시를 만드는 것이 매우 가능하다는 것을 알고 있지만 이미지의 내용을 다른 것으로 간주하는 것 같습니다.Ubuntu에서 이미지 (PNG)의 CONTENTS를 기반으로 고유 한 해시를 만드시겠습니까?

예를 들어, 테스트하려면 임의의 색상/선/모양/등으로 구성된 매우 큰 PNG 파일을 만듭니다. 그런 다음 파일을 test1.png로 저장했습니다. 그런 다음 이미지 구석에 하나의 픽셀 검은 색 점을 만들고 test2.png로 저장했습니다.

두 이미지 모두에서 md5sum을 실행했으며 다른 해시 값 (예상)을 가졌습니다. 그런 다음 test2.png를 다운로드하고 단일 검정 픽셀을 제거한 다음 파일을 test3.png로 저장했습니다. test3.png 및 test1.png에는 동일한 이미지가 포함되어 있습니다.

자, PNG가 무손실 압축이어야하므로 문제가되지 않아야합니다 (?). 나는이 모든 것에 대해 어둠 속에서 조금 (아마 말할 수 있듯이)이기 때문에, 누군가 내게 어떤 아이디어를 줄 수 있다면, 나는 그것을 매우 감사 할 것입니다!

답변

5

당신은 그렇게 말하지 않았지만 test1.png와 test3.png에 대해 다른 해시를 얻고있는 것 같군요?

PNG 파일에는 이미지 데이터 외에도 많은 양의 메타 데이터가 포함될 수 있습니다. 일부 메타 데이터가 다를 수 있습니다. 동일한 이미지 데이터가 다른 방식으로 압축 될 수도 있습니다. 정말로 알고 싶다면 파일을 비교하여 정확히 다른 점을 알아보십시오.

파일 내용을 실제로 해시하려면 원시 RGB 형식으로 변환하고 대신 해시해야합니다.

+0

필자가 원하는 것은 실제로 원하는 것입니다 (원시 RGB 형식으로 변환하고 해시 대신 사용). 기본적으로 각 픽셀을 보면서 x/y 위치 + RBG 값을 기준으로 일부 값을 지정하고이 값과 MD5의 합계를 취하고 싶습니다. 내가 만든 날짜 나 다른 메타 데이터는 상관하지 않습니다. – shoelessone

관련 문제