publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
5 skomentuj »

TAGI: php , md5 , ftp , plik

2009-05-13 15:41  |  Łukasz Sosna

Jak zweryfikować plik za pomocą MD5? (PHP)

Jak zweryfikować plik za pomocą MD5? (PHP)

Po wgraniu przez FTP na serwer plików, które chcielibyśmy udostępnić do pobrania z naszej strony, musimy następnie sprawdzić czy plik ten jest prawidłowy. Nie byłoby z tym problemu, gdyby taki plik był małych rozmiarów. Będziemy natomiast mieli spore problemy z plikami bardzo dużymi, np. archiwum z programem, w którym liczba plików przekracza tysiąc. Istnieje jednak jeden sposób, aby można było zrezygnować z potrzeby pobierania i sprawdzania umieszczanych na koncie plików.

Wiele jest programów, które pozwalają nam na obliczenie sumy MD5 danego pliku na naszym lokalnym komputerze. Równie dobrze można zatem zrobić to już po tym, jak plik zostanie wgrany na serwer. W języku PHP istnieje funkcja md5_file(), za pomocą której możemy wygenerować kod MD5 dla danego pliku i porównać go z tym, który wygenerowaliśmy na komputerze.

<?php
echo md5_file('./archiwum.rar');
?>

Jako parametr funkcji podaliśmy nazwę pliku, który chcemy sprawdzić. Ważne jest, aby plik archiwum.rar znajdował się w tym samym katalogu co skrypt PHP. Dzięki uruchomieniu skryptu w naszej przeglądarce wyświetli się suma MD5.

Rys.1: Rezultat wywołania funkcji dla pliku.

Możemy na przykład na naszym serwerze prowadzić sprzedaż programów, a to wymaga ich sprawdzenia. Nieprzychylna nam osoba mogłaby się włamać na serwer, a następnie podmienić plik. Użytkownicy, którzy go pobiorą, będą później mieli pretensje do nas.

Oto bardzo prosta metoda, pozwalająca na porównanie sumy wpisanej przez nas z obecną sumą pliku.

<?php
if (md5_file('./archiwum.rar') == 'ad08fe53a5e484ea568d60544ef3f05c') {
echo '<a href="archiwum.rar">Pobierz plik</a>';
}

else {
echo '<p>Plik został niepoprawnie wgrany lub jest uszkodzony</p>';
}
?>

Sprawdzamy, czy suma MD5 obliczona za pomocą funkcji PHP jest zgodna z wpisaną przez nas wartością, obliczoną w specjalnym programie. W wypadku gdyby była identyczna, użytkownikowi wyświetlony zostanie link do pobrania. Jeżeli natomiast wartość jest inna, poinformujemy go, że plik uległ uszkodzeniu.

Rys.2: Sprawdzanie
sumy MD5 pliku.

Dobrym pomysłem byłoby też umieszczenie w tym miejscu funkcji mail(), która wyśle na nasz e-mail informację o tym błędzie. Wówczas możemy go od razu naprawić, nie czekając na list od użytkownika.

Dzięki temu rozwiązaniu jesteśmy w stanie kontrolować, czy pliki znajdujące się na naszym serwerze są właśnie tymi które wgraliśmy. Jest to bardzo dobry sposób na zabezpieczenie serwisu przed osobami, które chciałyby podmienić zawartość plików. Pierwszy skrypt może również służyć do sprawdzenia, czy duży plik został przesłany prawidłowo.

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
5 skomentuj »

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł