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
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:
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.