سؤال

قل لدي عدد الملفات "n 'من الملفات، لكل منها هضم CRC32 و MD5 و SHA1

الآن هذه الملفات 'n' من الملفات تقسيم الملفات / أرشيف ملفات كبيرة واحدة.

عندما يتم إعادة إخراج / ربط هذه الملفات الأصغر في الملف الأكبر، يمكننا حساب Digest من هذا الملف الأكبر أيضا.

سؤالي هو: هل هناك طريقة للتحقق مما إذا كان مزيج من هضم هذه الملفات الأصغر يساوي Digest من الملف الكبير؟

على سبيل المثال، أقول أن لدي ملف تقسيم إلى 4 أجزاء مع Digests 0xde، 0xad، 0xbe، 0xef

قل، بعد الانضمام، يحتوي الملف الأكبر على Digest 0xC0

هل هناك أي طريقة للتحقق من الانضمام (0xde، 0xad، 0xbe، 0xef) == 0xC0، حيث "انضمام" هي العملية السحرية / الصيغة / الجملال أبحث عنها؟

هل كانت مفيدة؟

المحلول

لا أعتقد ذلك، آسف
من شأنه أن يجعل من السهل كسر MD5 إذا كان هذا ممكنا

تعديل. إذا كنت تقصد هل يمكنني حساب MD5 من المجموع من MD5 من الأجزاء = لا.
ولكن إذا كنت ترغب فقط في تأكيد أن الأجزاء صحيحة، فيمكنك دائما حساب MD5 من كل جزء فردي ثم MD5 من مجموعة MD5S.
من الواضح للتحقق من ذلك، تحتاج إلى أداء نفس التسلسل، حتى يتعين على شخص لديه ملف كامل فقط تقسيمه للقيام بنفس الاختيار.

نصائح أخرى

إذا لم تنضم إلى الملفات، فيمكنك نقلها واحدا تلو الآخر إلى خوارزمية Hash باستخدام طريقة التحويل. مع استدعاء تحويل FinalBlock الذي يمنحك النتيجة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top