Python Hashlib Md5

Python Hashlib Md5
Hash -funksjoner er metoder/funksjoner som kan godta data i forskjellige størrelser som inngangs- og utgangsmelding Hash eller Digest, som er en chifferdata av en definert størrelse. Dataintegriteten kan evalueres ved hjelp av denne verdien. En kryptografisk hasjfunksjon inkluderer MD5 -hashen. En hasjverdi legges til hver datapakke før den sendes eller overføres over Internett. Serveren beregner hasj når dataene mottas og sjekker/verifiserer den med den koblede/vedlagte hasjverdien. Datapakker godtas bare hvis den overførte hasjverdien og den vedlagte hasjverdien er de samme. Ellers indikerer det at dataene har endret seg. Denne endringen kan resulterte fra tap av data, tukling av data, støyfeil eller av en tredjepart. I denne opplæringen vil vi lære bruken og arbeidet med MD5 -hash i Python.

Hva er md5 hash i python?

En av hash -metodene levert av Pythons Hashlib -modul er MD5 -hash. For å utføre hasjberegningene, brukes det stort sett i kryptografiske funksjoner. Hash kan også brukes til å lage cacher med massive datasett, bekrefte passord, bekrefte fingeravtrykk, sjekke integriteten til filer osv. Det tar en byte -streng som inngang og sender ut en heksadesimal streng som den kodede verdien. En 128-bit hasjverdi produseres når du koder for strengdata til en MD5-hasj. Du bør være forsiktig når du velger karakterkodingen for å konvertere tekstdataene til binær før hashing fordi hashing -algoritmer ofte fungerer med binære data i stedet for tekstdata. Hashen resulterer også i binære data.

Funksjonene som er assosiert med MD5 -hasj er:

kode (): Det skaper byte fra strengen slik at hasjfunksjonen kan bruke dem.

fordøye(): Den returnerer de kodede eller krypterte dataene i form av byte.

Hexdigest (): Det heksadesimale formatet til de kodede dataene returneres ved hjelp av denne funksjonen.

Fordeler med MD5

  • Mindre hasj kan sammenlignes og lagres lettere å bruke MD5 enn de større tekstene i varierende lengder.
  • Passord lagres/lagres i 128-biters format ved hjelp av MD5-algoritmen.
  • Hver datapakke tilfører en hasjverdi før overføring av data. Du kan se etter filrupsjon når dataene er mottatt av serveren. Verifisering av filintegritet er gyldig så lenge hasjene samsvarer med å unngå datakorrupsjon.
  • Ved hjelp av MD5 kan en meldingsfordøyelse ganske enkelt genereres fra en original melding.

Hvordan du bruker md5 hash i python?

Hvordan få MD5 av strengobjekter og filer demonstreres i følgende avsnitt.

Beregning av MD5 -hasjverdien til en streng

Beregning av hasjverdien til et strengobjekt i Python innebærer vanligvis fire trinn:

  1. Opprette eller laste inn en strengverdi.
  2. Konvertere strengen til byte.
  3. Krypter dataene i byte til md5 hasjverdi.
  4. Vis eller returner dataene i form av byte (ved hjelp av Digest ()) eller i form av heksadesimal (ved hjelp av Hexdigest ()).

Strengvariabelen “String” er definert med binær koding i forrige skript. “Hashlib.MD5 ”-metode kan derfor brukes til å kryptere strengen direkte. Den kodede utgangen vises ved hjelp av fordøyelsesfunksjonen. En binær streng er kanskje ikke alltid tilgjengelig som input. I slike scenarier må du først konvertere dataene til en binær sekvens før du fører dem til MD5 -hash -algoritmen.

Vi ser nå på noen få eksempler for å beregne MD5 -hashen til et strengobjekt.

Eksempel 1: Skrive ut strengdataene i byte som tilsvarer MD5 -hash

For å bruke MD5 -funksjonen, må vi først importere hashlib -modulen. Vi passerer en strengdata i MD5 -funksjonen. Deretter skriver vi ut i form av md5 hasjverdi så vel som i form av byte.

Hashfunksjonen kan akseptere bytene som inngang. Dermed passerer vi strengene som byte til MD5 () -funksjonen i forrige kode. MD5 -hash -metoden krypterer deretter de medfølgende dataene. Til slutt bruker vi Digest () -funksjonen for å generere byte -ekvivalenten til MD5 -hash -kodet streng.

Eksempel 2: Skrive ut strengdataene i heksadesimal ekvivalent med MD5 -hash

Nå skriver vi ut dataene i heksadesimal etter å ha kodet dem i MD5 -hash. I forrige eksempel bruker vi “B” rett før strengverdien for å kode strengen til byte. Her bruker vi Encode () -funksjonen på strengen for å kode den. Begge tilnærminger gir identiske resultater. Vi kan imidlertid spesifisere kodingsformatet etter vårt valg ved hjelp av enkodet () -funksjonen.

Her bruker vi Encode () -funksjonen for å transformere de spesifiserte strengdataene til en byte slik at de kan sendes til en hasjfunksjon som vil godta den. Deretter er den kodet med MD5 -funksjonen. Endelig returneres heksadesimal verdi ved hjelp av Hexidest () -metoden.

Beregning av MD5 -hasjverdien til en fil

Den innebygde modulen Hashlib of Python kan også brukes til å lage MD5-hashen til en fil

Eksempel 1: MD5 -hasjverdien til en liten fil i Python

Du bør være klar over at bare å spesifisere et filnavn i hashlib.MD5 () -funksjonen, som i følgende eksempel, returnerer ikke hashverdien til filen.

Den returnerte verdien er ikke MD5 -hashen i filen vår. Men det er MD5 -hasjverdien til “Python.txt ”streng.

For å få riktig MD5 -hasjverdi på filen, må du først lese filen i byte. Det er enkelt, alt vi trenger å gjøre er å lese filens innhold og konvertere det til byte. Byte blir deretter sendt til hashlib.MD5 () for å få MD5 -hash -verdien.

Som det kan sees, beregner funksjonen MD5 -hashverdien til filen.

Eksempel 2: MD5 -hasjverdien til en stor fil i Python

Hvis filen er 10 GB i størrelse, la oss si at det er en stor loggfil, en trafikkdump, et videospill osv. I et slikt tilfelle kan vi lese de store filene i biter av byte, som er en minneeffektiv måte å beregne MD5-hasj. Størrelsen på biter avhenger av kravet ditt, størrelsen på filen din, minnet om systemet ditt osv. Derfor, i denne prosedyren, behandler vi sekvensielt biter og oppdaterer også hasj. Som et resultat oppdateres MD5 -hashen 100 ganger i løpet av denne prosessen, hvis det er 100 slike filbiter.

Vi leser dataene i biter ved hjelp av en stundsløyfe mens MD5 -hasjverdien oppdateres ved hjelp av oppdaterings- () -funksjonen.

Sammenlign og valider en fils MD5 -hasj

På serveren eller bruker en logikk i koden din, bør vi validere MD5 -hashen til dataene eller filen. Vi oppretter originalfilens MD5 -hasj igjen for å bekrefte hashen. Etter det, sammenlign MD5 -verdiene som genereres av kilden og oss.

Som begge verdiene matchet verdien av source_md5 og MD5 -hash -verdien av filen vår. Det betyr at MD5 -hasjverdien er bekreftet.

Konklusjon

Vi lærte først om hasjfunksjonene i denne opplæringen. Vi forklarte hva hashlib.md5 () -funksjonen er og hvilke funksjoner som er assosiert med den. Vi diskuterte noen fordeler og anvendelser av MD5 -hasjfunksjoner. Vi lærte hvordan vi bruker hashlib.MD5 () -metode for å beregne en strengs MD5 -hasjverdi. Vi implementerte også et par eksempler for å lære deg hvordan du beregner og verifiserer MD5 -hashverdien til små og store filer i Python.