문제

다운로드 후 파일의 무결성을 보장하려고합니다. 파일의 MD5를 데이터베이스에 저장하고 다운로드 한 후 해당 MD5를 파일과 비교합니다. 그러나 파일이 다운로드 된 후 파일을 해시 할 때 항상 다른 MD5 결과를 얻습니다. 해시되고있는 바이트 배열에 마지막 수정 된 메타 데이터가 포함되어 있고 해시를 버리고 있는지 궁금합니다. 다른 사람이 전에이 작업을 수행 한 경우 도움을 주셔서 감사합니다.

도움이 되었습니까?

해결책

MD5 해시는 파일 내용에 대해 계산되며 문서 메타 데이터의 영향을받지 않습니다. 동일한 콘텐츠로 시작하면 항상 동일한 결과를 생성하는 결정 론적 프로세스입니다 (충돌로 인해 MD5 서명을 속이는 방법이 있습니다).

파일의 MD5 해시를 어떻게 만들고 있습니까? 사용해 보셨습니까? 또 다른 도구 문제를 재현하려면?

MD5 서명이 다른 경우 파일 ~이다 어떻게 든 다른.

EOL 문자의 이전 제안 또는 ASCII 모드에서 이진 파일을 전송하는 것은 파일을 변경할 수있는 이유 일 가능성이 높습니다. 사용 a diff 도구 파일의 위치/방법을 식별하는 데 도움이 될 수 있습니다. 파일이 이진 형식 인 경우 사용해보십시오. 이진 차이 도구.

다른 팁

찾는 간단한 방법 : 두 가지 다른 다운로드에 대해 Diff (이진을 가정하지만 아닐 수도 있음)를 실행합니다. 이것은 문제를 신속하게 정확히 찾아야합니다.

여기에 완전히 잘못되지 않은 경우 MD5 HASH는 타임 스탬프 및 기타 메타 데이터가 아닌 실제 데이터 만 작동합니다. 어쩌면 당신은 ftp로 텍스트 파일을 전송하고있을 것입니다.이 경우 ftpclient는 시스템에 맞게 Newline 문자를 다시 작성하고 해시가 다른 것입니다.

FTP를 사용하여 다운로드하는 경우 문제는 다음과 같습니다.

  • ASCII 대신 이진 다운로드 옵션 (또는 그 반대).

  • 플랫폼을 가로 질러 Windows를 가로 질러 EOL이 다르게 처리되는 UNIX로 전송합니다.

파일의 특정 부분에 대한 해싱으로 만 이론을 테스트 할 수 있습니다. 더 나은 답변을 얻으려면 더 많은 정보를 제공하십시오 ...

파일 이름이나 다른 문자열이 아닌 파일의 바이트에서 실제로 MD5를 계산하고 있는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top