Jak mogę zapewnić poprawność .tar.gz
pliku, który niedawno pobrałem z serwera?
źródło
Jak mogę zapewnić poprawność .tar.gz
pliku, który niedawno pobrałem z serwera?
po pierwsze i formost możesz użyć narzędzi do obliczenia „liczby” tego pliku, która jest specyficzna dla tego pliku i tylko dla tego pliku. liczba ta nosi nazwę „skrótu cyfrowego” lub „podsumowania”:
http://en.wikipedia.org/wiki/Cryptographic_hash_function
więc użyj czegoś takiego jak „sha256” (lepiej) lub „md5” (nadal przydatny, choć atakowany) tp obliczyć skrót. obliczyć to na serwerze i na komputerze. porównaj dwa. jeśli są identyczne, gratulacje.
znajdziesz wiele programów haszujących za darmo, np.
uwagi:
jeśli nie możesz obliczyć skrótu pliku na serwerze, nie możesz być pewien, że wszystkie bity zostały idealnie pobrane
Czasami nie trzeba obliczać podsumowania na serwerze, ponieważ niektórzy ludzie dostarczają te informacje i mówią o podsumowaniu. ale bądź ostrożny, musisz również „pobrać” te informacje. więc jeśli ktoś wyśle ci niewłaściwy numer ORAZ nakłania cię do pobrania niewłaściwego (zmanipulowanego) pliku, podsumowanie jest bezwartościowe.
jeśli chcesz, aby Twoi klienci / klienci mogli w łatwy sposób pobrać coś, a Ty na wdrażającym końcu łańcucha chcesz wiedzieć, czy klient (który nie zawsze jest specjalistą) pobrał plik poprawnie: użyj czegoś innego niż .tar.gz . tarballi (.tar.gz) to strumienie danych, które nie pozwalają naprawdę wykryć, czy nadchodzi więcej danych. w przypadku kontenerów takich jak .zip lub .7z jest inaczej, ponieważ zawierają spis treści (spis treści) na końcu pliku. jeśli klient pobierze plik .zip i na końcu pominie niektóre bajty (przekroczenie limitu czasu spowodowane powolnymi połączeniami), wówczas klient nie będzie mógł otworzyć pliku i ma natychmiastową informację zwrotną. czasami takie kontenery oferują sumę kontrolną zawartości, aby użytkownik mógł sprawdzić, czy kontener „wygląda” dobrze.