Jak uzyskać sumę kontrolną MD5 dla dowolnego pliku w Javie? Jak korzystać z narzędzia DigestUtils.md5Hex Apache Common?

Opublikowany: 2021-08-28
Jak uzyskać sumę kontrolną MD5 dla dowolnego pliku w Javie? Użyj pliku DigestUtils.md5Hex na commons-codec

Zwiększenie bezpieczeństwa aplikacji korporacyjnych to największe wyzwanie każdej organizacji.

Rozważ ten rzeczywisty scenariusz produkcji:

  1. Masz aplikację, która reads the value z pliku
  2. Na podstawie wartości pliku performs some operations takie jak dodaj/usuń/wykonaj
  3. Wdrożyłeś tę aplikację w środowisku produkcyjnym
  4. Co się stanie, jeśli jakaś unauthorized person changes the value tego pliku bez Twojej wiedzy?
  5. Twoja aplikacja simply gets new value z pliku i uruchamia logikę, która może spowodować unexpected outcome
  6. Jeśli masz włączoną sumę kontrolną MD5 dla tego pliku - could have created an exception z wyraźnym komunikatem o błędzie i you could have prevented disaster lub nieoczekiwanemu wynikowi

Co to jest suma kontrolna MD5?

Suma kontrolna MD5 dla pliku to wartość 128-bit value , coś w rodzaju odcisku palca pliku. Może być przydatny zarówno do porównywania plików, jak i kontroli ich integralności.

Uzyskanie tej samej wartości dla innego pliku jest prawie niemożliwe. W tym tutorialu stworzymy prosty program w Javie, który tworzy i zwraca wartości MD5 dla danego pliku. W naszym przypadku jest to plik index.php .

Zacznijmy:

Krok 1

Utwórz klasę publiczną CrunchifyGetMD5ForFile.java

Krok 2

Zaimportuj poniższe dwie zależności maven do pliku pom.xml projektu. Samouczek konwersji projektu na projekt maven.

Używamy bibliotek commons-codec i commons-io .

Krok 3

Utwórz sumę kontrolną MD5 za pomocą narzędzia DigestUtils.md5Hex i wydrukuj wynik na konsoli.

DigestUtils.md5Hex => implementacja encodeHex

Oto pełny program.

Utwórz klasę crunchifyGetMd5ForFile.java

Po prostu uruchom powyższy program jako aplikację Java, a zobaczysz wynik podobny do tego.

Wynik konsoli IntelliJ IDEA:

Jak zamierzasz używać tej sumy kontrolnej MD5 w czasie wykonywania do weryfikacji integralności plików?

Możesz porównać tę sumę kontrolną MD5 w czasie wykonywania z wartością przechowywaną w Twojej bazie danych, np. MySQL, Oracle itp.

Istnieje wiele innych sposobów na osiągnięcie tego samego, ale omówimy to w przyszłych samouczkach.