Kryptografické haše sa používajú v každodennom živote, ako sú digitálne podpisy, overovacie kódy správ, detekcia manipulácie, odtlačky prstov, kontrolné súčty (kontrola integrity správy), hašovacie tabuľky, ukladanie hesiel a mnoho ďalších. Používajú sa aj pri odosielaní správ cez sieť kvôli bezpečnosti alebo ukladaniu správ do databáz.
Existuje mnoho hashovacích funkcií definovaných v hašib knižnica v pythone. Tento článok sa zaoberá vysvetlením a fungovaním hashu MD5.
Táto hašovacia funkcia prijíma sekvenciu bajtov a vracia 128-bitová hash hodnota , zvyčajne sa používa na kontrolu integrity údajov, ale má problémy so zabezpečením. Pridružené funkcie:
- encode() : Konvertuje reťazec na bajty, aby bol akceptovateľný hašovacou funkciou. digest() : Vráti zakódované údaje v bajtovom formáte. hexdigest() : Vráti zakódované údaje v hexadecimálnom formáte.
Poznámka:
Knižnica md5 bola knižnica Pythonu, ktorá poskytovala jednoduché rozhranie na generovanie hashov MD5.
Táto knižnica bola zastaraná v prospech knižnice hashlib, ktorá poskytuje flexibilnejšie a bezpečnejšie rozhranie na generovanie hashov.
Nižšie uvedený kód demonštruje fungovanie hashu MD5, ktorý prijíma bajty a vystupuje ako bajty.
Python3
začína javou
reťazec v porovnaní s javou
# 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())> |
>
>
manuálne testovanie
Výkon:
The byte equivalent of hash is : b'xf1xe0ix~xcetSx1dx11%Yx94hq'>
vysvetlenie: Vyššie uvedený kód zaberá bajt a môže byť akceptovaný hašovacou funkciou. Hašovacia funkcia md5 ho zakóduje a potom pomocou digest() sa vytlačí zakódovaný reťazec ekvivalentný bajtom.
Nižšie uvedený kód ukázal, ako brať reťazec ako vstupný a výstupný hexadecimálny ekvivalent zakódovanej hodnoty.
Python3
reťazec obsahuje
# 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())> |
java lambda výrazy
>
>
Výkon:
The hexadecimal equivalent of hash is : f1e069787ece74531d112559945c6871>
vysvetlenie: Vyššie uvedený kód vezme reťazec a prevedie ho na bajtový ekvivalent pomocou encode(), aby ho mohla akceptovať hašovacia funkcia. Hašovacia funkcia md5 ho zakóduje a potom pomocou hexdigest() sa vytlačí zakódovaný reťazec ekvivalentný v hexadecimálnej sústave.