Ale czy warto? Jeśli masz hash dla każdego pliku, to zasadniczo masz narzut dla każdego pliku. Powiedzmy, że każdy plik musi zajmować co najmniej 512 bajtów (typowy sektor dyskowy) i że przechowujesz te skróty na tyle kompaktowo, aby nie każdy skrót mieszający zajmował znacznie więcej niż rozmiar skrótu.
Tak więc, nawet jeśli wszystkie twoje pliki mają 512 bajtów, najmniejsze to: 16/512 = 3.1%
lub 32/512 = 6.3%
. W rzeczywistości, założyłbym się, że twój średni rozmiar pliku jest wyższy (chyba że wszystkie twoje pliki to 1 sektor ...), więc narzut byłby mniejszy.
Teraz ilość miejsca potrzebna do skrótów skaluje się liniowo wraz z liczbą posiadanych plików. Czy to dodatkowe miejsce warte , że dużo? Nawet jeśli miałeś wspomniane trylionowe pliki - to jest 1 000 000 000 000 * 16 = ~29 TiB
, czyli dużo miejsca, ale pamiętaj: twoje dane to 1 000 000 000 000 * 512 = 465 TiB
. Liczby są bezwartościowe, naprawdę, ponieważ nadal są napowietrzne. Ale na tym poziomie, gdzie masz pół petabajta pamięci, czy 15 terabajtów ma znaczenie? Czy na każdym poziomie oszczędności wynoszą jakieś 100%? I pamiętaj, że jeśli są większe, oszczędzasz mniej. (Które, prawdopodobnie, są to: powodzenia uzyskanie rozmiaru sektora o wielkości 512 bajtów przy tym rozmiarze dysku twardego.)
Czy to jest ta 3%
lub mniej oszczędności na dysku warte potencjalnego ryzyka w zakresie bezpieczeństwa. (Które pozostawiam bez odpowiedzi, ponieważ nie jest to moja filiżanka herbaty).
Czy można, na przykład, zgrupować pliki w logiczny sposób, aby mieć mniej plików? (Mam na myśli, jeśli masz tryliony 512-bajtowych plików, czy naprawdę chcesz mieszać każdy bajt na dysku?)
Myślałem, że paradoks urodzin daje niższe kursy niż to, ale Wikipedia zgadza się z tobą: http: //en.wikipedia.org/wiki/Birthday_paradox # Probability_table –
Powiązane pytanie: http://stackoverflow.com/questions/2256423/truncating-an-md5-hash-how-do-i-calculate-todd---colollision-occuring – Shadok
Zobacz też: http://security.stackexchange.com/questions/18385/does-truncating-the-cryptographic-hash-make-it-impossible-to-crack – Luc