MD5 hash i Python
Kryptografiske hashes bruges i hverdagen som i digitale signaturer, meddelelsesgodkendelseskoder, manipulationsdetektion, fingeraftryk, kontrolsummer (tjek af meddelelsesintegritet), hashtabeller, adgangskodelagring og meget mere. De bruges også til at sende beskeder over netværket for sikkerhed eller lagring af beskeder i databaser.
Der er mange hash-funktioner defineret i hashlib bibliotek i python. Denne artikel omhandler forklaring og funktion af MD5-hash.
Denne hash-funktion accepterer sekvens af bytes og returnerer 128 bit hash værdi , bruges normalt til at kontrollere dataintegritet, men har sikkerhedsproblemer. Tilknyttede funktioner:
- encode() : Konverterer strengen til bytes, så den kan accepteres af hash-funktionen. digest() : Returnerer de kodede data i byteformat. hexdigest() : Returnerer de kodede data i hexadecimalt format.
Bemærk:
md5-biblioteket var et Python-bibliotek, der gav en enkel grænseflade til generering af MD5-hash.
Dette bibliotek er blevet forældet til fordel for hashlib-biblioteket, som giver en mere fleksibel og sikker grænseflade til generering af hashes.
Nedenstående kode demonstrerer, hvordan MD5 hash accepterer bytes og output som bytes.
Python3
# Python 3 code to demonstrate the> # working of MD5 (byte - byte)> import> hashlib> # encoding techcodeview.com using md5 hash> # function> result> => hashlib.md5(b> 'techcodeview.com'> )> # printing the equivalent byte value.> print> ('The byte equivalent of> hash> is> : ', end> => '')> print> (result.digest())> |
Produktion:
The byte equivalent of hash is : b'xf1xe0ix~xcetSx1dx11%Yx94hq'
Forklaring: Ovenstående kode tager byte og kan accepteres af hash-funktionen. md5-hash-funktionen koder den, og ved hjælp af digest(), udskrives en byte-ækvivalent kodet streng.
Nedenstående kode demonstrerede, hvordan man tager streng som input og output hexadecimal ækvivalent af den kodede værdi.
Python3
# Python 3 code to demonstrate the> # working of MD5 (string - hexadecimal)> import> hashlib> # initializing string> str2hash> => 'techcodeview.com'> # encoding techcodeview.com using encode()> # then sending to md5()> result> => hashlib.md5(str2hash.encode())> # printing the equivalent hexadecimal value.> print> ('The hexadecimal equivalent of> hash> is> : ', end> => '')> print> (result.hexdigest())> |
Produktion:
The hexadecimal equivalent of hash is : f1e069787ece74531d112559945c6871
Forklaring: Ovenstående kode tager streng og konverterer den til byte-ækvivalenten ved hjælp af encode(), så den kan accepteres af hash-funktionen. md5-hash-funktionen koder det, og derefter udskrives hexadecimalt ækvivalent kodet streng ved hjælp af hexdigest().