문제

'n'개의 파일이 있고 각 파일에 대해 CRC32, MD5 및 SHA1 다이제스트가 있다고 가정해 보겠습니다.

이제 이러한 'n'개 파일은 실제로 단일 대형 파일의 분할 파일/아카이브입니다.

이러한 작은 파일이 큰 파일로 재결합/결합되면 이 큰 파일의 다이제스트도 계산할 수 있습니다.

내 질문은 다음과 같습니다이러한 작은 파일의 다이제스트 조합이 큰 파일의 다이제스트와 동일한지 확인할 수 있는 방법이 있습니까?

예를 들어 다이제스트가 0xDE, 0xAD, 0xBE, 0xEF인 4개 부분으로 분할된 파일이 있다고 가정해 보겠습니다.

가입 후 더 큰 파일에 다이제스트 0xC0이 있다고 가정해 보겠습니다.

Join(0xDE, 0xAD, 0xBE, 0xEF) == 0xC0인지 확인할 수 있는 방법이 있습니까? 여기서 'join'은 내가 찾고 있는 마법의 연산/공식/알고리즘입니다.

도움이 되었습니까?

해결책

그렇게 생각하지 마세요, 미안해요
이것이 가능하다면 MD5를 크랙하는 것이 오히려 더 쉬울 것입니다.

편집하다.그렇다면 부품의 MD5에서 합계의 MD5를 계산할 수 있습니까?
그러나 부품이 올바른지 확인하고 싶다면 언제든지 각 개별 부품의 MD5를 계산한 다음 해당 MD5 ​​세트의 MD5를 계산할 수 있습니다.
분명히 이를 확인하려면 동일한 시퀀스를 수행해야 하므로 전체 파일만 가진 사람은 동일한 검사를 수행하기 위해 파일을 분할해야 합니다.

다른 팁

파일에 결합하지 않으면 변형 블록 메소드를 사용하여 파일을 하나씩 해시 알고리즘으로 전달할 수 있습니다. 결과를 제공하는 transformFinalBlock을 호출하면됩니다.

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