Programatically bozgunculuk olmadan bir dosyanın hash değişiyor

3 Cevap php

Herkes bunu bozmadan bir dosyanın karma değiştirmekle ilgili herhangi bir bilgi var mı?

Ben bunu şu şekilde bozmadan MD5 değiştirerek, dosyanın sonuna bir boş byte ekleme hakkında okuyun. Herkes herhangi bir bilgi var mı?

Ben bu in yapmak isteyen dili PHP.

Teşekkürler.

3 Cevap

Onlar bu dosyayı okurken uygulamaların tam olarak ne bekliyoruz bağlıdır. Örneğin, bir metin dosyası var, varsa, sadece paragrafların birinde izleyen bir boşluk eklemek olabilir. Bu insanlar tarafından dosyanın okunabilirliği değişmez ama MD5 değişecektir.

Aynı şekilde böyle bir boşluk (sürece bir sözdizimsel önemsiz bir alanda boşluk girmek gibi, yani örneğin içinde değil dize sabitleri) farketmez C veya PHP gibi temel HTML dosyaları veya kaynak dosyaları için. Bazı ekstra boşluk koymak veya sonunda satır karakterler eklemek ve web sayfaları davranışı değişmez bulacaksınız.

(- Bazı yükleyici yük bölümleri için sağlama kullanabilirsiniz gerçekten bile yükler eğer) muhtemelen çökmesine ve bunu çalıştırdığınızda yakarsınız Ancak bu bir yürütülebilir dosya için çalışmak mümkün değildir.

Sen yolsuzluk Bahsettiğin durumda tam olarak ne anlama belirtmeniz gerekir.

Update:

Örneğin JPEG dosyaları, muhtemelen bir EOI işaretleyici tarafından takip benzersiz bir COM bölümü ile sonunda EOI işaretleyici yerine basit bir mesele. EOI işaretleyici görüntü sonudur ve bunu önce (benzersiz bir açıklama ile) yorum bölümüne eklemek gerekir. Hala aynı görüntü sunarken bu her JPEG, farklı bir MD5 var olur. Bkz here.

Sonunda katalog kendi uzaklıklar ile dosyaları listeler beri ZIP dosyaları ile, aslında her dosya arasında rasgele veri ekleyebilirsiniz. Ayrıntılar için here bakın. Ne yazık ki, RAR dosyaları internals aşina değilim.

Sadece sembolik linkleri ln -s otherfolder/file file (sunucu * nix platformda olduğunu varsayarak) için bu çift dosyaları değiştirerek daha iyi olabilir gibi geliyor.

Eğer öncelikle. ZIP ve. RAR dosyaları ile ilgili ise, PHP için bir ZIP / RAR kütüphane bulmak, ve sadece her zip / rar küçük rastgele bir dosya ekleyin.

JPEG için, takip paxdiablo 'ın cevabı.