Cum să obțineți suma de control MD5 pentru orice fișier dat în Java? Cum se utilizează utilitarul Apache Common DigestUtils.md5Hex?

Publicat: 2021-08-28
Cum să obțineți suma de control MD5 pentru orice fișier dat în Java? Utilizați DigestUtils.md5Hex de la commons-codec

Întărirea securității aplicației dvs. de companie este cea mai mare provocare a oricărei organizații.

Luați în considerare acest scenariu real de producție:

  1. Aveți o aplicație care reads the value dintr-un fișier
  2. Pe baza valorii fișierului, performs some operations precum adăugare/ștergere/execuție
  3. Ați implementat această aplicație în mediul de producție
  4. Ce se întâmplă dacă o unauthorized person changes the value acelui fișier fără știrea ta?
  5. Aplicația dvs. simply gets new value dintr-un fișier și rulează logica care poate provoca unexpected outcome
  6. Dacă este posibil să aveți sumă de control MD5 activată pentru acel fișier - ați could have created an exception cu un mesaj de eroare clar și you could have prevented disaster sau rezultatul neașteptat

Ce este suma de control MD5?

Suma de control MD5 pentru un fișier este o 128-bit value , ceva ca o amprentă a fișierului. Poate fi util atât pentru compararea fișierelor, cât și pentru controlul integrității acestora.

Pentru a obține aceeași valoare pentru fișiere diferite este aproape imposibil. În acest tutorial vom crea un program Java simplu care creează și returnează valori MD5 pentru un fișier dat. În cazul nostru, este fișierul index.php .

Să începem:

Pasul 1

Creați clasa publică CrunchifyGetMD5ForFile.java

Pasul 2

Importați mai jos două dependențe Maven în fișierul pom.xml al proiectului dumneavoastră. Tutorial pentru a converti proiectul în proiect Maven.

Folosim biblioteci commons-codec și commons-io .

Pasul 3

Creați suma de control MD5 utilizând utilitarul DigestUtils.md5Hex și imprimați rezultatul pe consolă.

DigestUtils.md5Hex => Implementare encodeHex

Iată un program complet.

Creați clasa crunchifyGetMd5ForFile.java

Doar rulați programul de mai sus ca o aplicație Java și veți vedea un rezultat similar cu acesta.

Rezultatul consolei IntelliJ IDEA:

Cum veți folosi această sumă de control MD5 în timpul execuției pentru a verifica integritatea fișierului?

Puteți compara această sumă de control MD5 în timpul execuției cu valoarea stocată în baza dvs. de date, cum ar fi MySQL, Oracle etc.

Există o serie de alte moduri în care ați putea realiza același lucru, dar vom discuta acest lucru în tutorialele viitoare.