Python Hashlib MD5

Python Hashlib MD5
Funkcje skrótu są metodami/funkcjami, które mogą akceptować dane o różnych rozmiarach jako skrót wiadomości wejściowych i wyjściowych lub trawienie, które są danymi szyfrowymi o określonym rozmiarze. Integralność danych można ocenić za pomocą tej wartości. Funkcja skrótu kryptograficznego obejmuje skrót MD5. Do każdego pakietu danych dodaje się wartość skrótu, zanim zostanie wysłany lub przesyłany przez Internet. Serwer oblicza skrót, gdy dane są odbierane i sprawdza/weryfikuje je za pomocą połączonej/załączonej wartości skrótu. Pakiety danych są akceptowane tylko wtedy, gdy przesłana wartość skrótu, a dołączona wartość skrótu jest taka sama. W przeciwnym razie wskazuje, że dane się zmieniły. Zmianę tę można wynikać z utraty danych, manipulacji danych, błędów szumu lub przez stronę trzecią. W tym samouczku nauczymy użytkowania i działania Hash MD5 w Python.

Co to jest skrót MD5 w Pythonie?

Jedną z metod skrótu dostarczonych przez moduł hashlib Pythona jest skrót MD5. Aby wykonać obliczenia skrótu, jest on najczęściej stosowany w funkcjach kryptograficznych. Hash można również użyć do tworzenia pamięci podręcznych masowych zestawów danych, weryfikacji haseł, weryfikacji odcisków palców, sprawdzania integralności plików itp. Występuje ciąg bajtowy jako wejście i wysyła ciąg szesnastkowy jako kodowaną wartość. 128-bitowa wartość skrótu jest wytwarzana podczas kodowania danych ciągów do skrótu MD5. Przybierając kodowanie znaków, aby przekonwertować dane tekstowe na binarne przed haszkiem, ponieważ algorytmy mieszania często działają z danymi binarnymi, a nie danymi tekstowymi. Hash powoduje również dane binarne.

Funkcje powiązane z skrótem MD5 to:

kodować(): Tworzy bajty z łańcucha, aby funkcja skrótu mogła z nich korzystać.

strawić(): Zwraca zakodowane lub zaszyfrowane dane w postaci bajtów.

Hexdigest (): Format szesnastkowy zakodowanych danych jest zwracany za pomocą tej funkcji.

Zalety MD5

  • Mniejsze skróty można porównać i przechowywać łatwiej za pomocą MD5 niż większe teksty o różnych długościach.
  • Hasła są zapisywane/przechowywane w formacie 128-bitowym za pomocą algorytmu MD5.
  • Każdy pakiet danych dodaje wartość skrótu przed transmisją danych. Możesz szukać uszkodzenia plików po otrzymaniu danych przez serwer. Weryfikacja integralności pliku jest ważna, o ile skróty dopasowują się do uszkodzenia danych.
  • Korzystając z MD5, podsumowanie wiadomości można po prostu wygenerować z oryginalnej wiadomości.

Jak używać haszu MD5 w Python?

Jak uzyskać MD5 obiektów i plików String są pokazane w poniższej sekcji.

Obliczanie wartości skrótu MD5 ciągu

Obliczanie wartości skrótu obiektu łańcuchowego w Pythonie zasadniczo obejmuje cztery kroki:

  1. Tworzenie lub ładowanie wartości ciągu.
  2. Przekształcenie łańcucha w bajty.
  3. Szyfrowanie danych w bajtach do wartości skrótu MD5.
  4. Wyświetl lub zwróć dane w postaci bajtów (za pomocą digest ()) lub w postaci heksadecimal (przy użyciu hexdigest ()).

Zmienna ciągu „ciąg” jest zdefiniowana z binarnym kodowaniem w poprzednim skrypcie. „Haszlib.Metodę MD5 ”można zatem zastosować do bezpośredniego szyfrowania łańcucha. Zakodowane wyjście jest wyświetlane za pomocą funkcji Digest. Ciąg binarny nie zawsze może być dostępny jako dane wejściowe. W takich scenariuszach musisz najpierw przekonwertować dane na sekwencję binarną przed przekazaniem ich do algorytmu skrótu MD5.

Patrzymy teraz na kilka przykładów do obliczenia skrótu MD5 obiektu ciągów.

Przykład 1: Drukowanie danych ciągów w bajtach równoważnych Hash MD5

Aby użyć funkcji MD5, musimy najpierw zaimportować moduł hashlib. Przedstawiamy dane stringowe w funkcji MD5. Następnie drukujemy w postaci wartości skrótu MD5, a także w postaci bajtów.

Funkcja skrótu może akceptować bajty jako dane wejściowe. W ten sposób przekazujemy ciągi jako bajty do funkcji MD5 () w poprzednim kodzie. Metoda skrótu MD5 następnie szyfruje podane dane. Na koniec używamy funkcji digest () do wygenerowania równoważnika bajtów kodowanego przez MD5 Hash.

Przykład 2: Drukowanie danych ciągów w szesnastkowej równoważnej z skrótem MD5

Teraz drukujemy dane w heksadecimal po kodowaniu ich w skrócie MD5. W poprzednim przykładzie używamy „B” tuż przed wartością ciągu, aby zakodować ciąg do bajtów. Tutaj stosujemy funkcję encode () w ciągu, aby ją zakodować. Oba podejścia dają identyczne wyniki. Możemy jednak określić format kodowania naszego wyboru za pomocą funkcji encode ().

Tutaj używamy funkcji encode () do przekształcenia określonych danych ciągów w bajt, aby można ją było przekazać do funkcji skrótu, która by ją zaakceptowała. Następnie jest kodowany z funkcją MD5. Wreszcie, jego wartość heksadecimalna jest zwracana za pomocą metody heksidest ().

Obliczanie wartości skrótu MD5 pliku

Wbudowany moduł hashlib Python można również użyć do utworzenia skrótu MD5 pliku

Przykład 1: Wartość skrótu MD5 małego pliku w Python

Powinieneś pamiętać, że po prostu określenie nazwy pliku wewnątrz hashlib.Funkcja MD5 (), jak w poniższym przykładzie, nie zwraca wartości skrótu pliku.

Zwracana wartość nie jest skrót MD5 naszego pliku. Ale jest to wartość skrótu MD5 „Python.TXT ”ciąg.

Aby uzyskać prawidłową wartość skrótu MD5 pliku, musisz najpierw odczytać plik w bajtach. To jest łatwe, wszystko, co musimy zrobić, to odczytać zawartość pliku i przekonwertować go na bajty. Bajt jest następnie przekazywany na hashlib.MD5 () Aby uzyskać wartość skrótu MD5.

Jak widać, funkcja pomyślnie oblicza wartość skrótu MD5.

Przykład 2: Wartość skrótu MD5 dużego pliku w Python

Jeśli plik ma rozmiar 10 GB, powiedzmy, że jest to duży plik dziennika, zrzut ruchu, gra wideo itp., Prawdopodobnie użyłby całej pamięci, jeśli spróbujesz utworzyć jego skrót MD5. W takim przypadku możemy odczytać duże pliki w fragmenty bajtów, co jest efektywnym pamięcią. Rozmiar fragmentów zależy od twojego wymagania, rozmiaru pliku, pamięci systemu itp. Dlatego w tej procedurze sekwencyjnie przetwarzamy fragmenty, jednocześnie aktualizując skrót. W rezultacie skrót MD5 jest aktualizowany 100 razy podczas tego procesu, jeśli jest 100 takich fragmentów plików.

Odczytamy dane do fragmentów za pomocą pomocy w pętli while, podczas gdy wartość skrótu MD5 jest aktualizowana za pomocą funkcji aktualizacji ().

Porównaj i zweryfikować skrót MD5 pliku

Na serwerze lub za pomocą logiki w twoim kodzie powinniśmy zweryfikować skrót MD5 danych lub pliku. Ponownie tworzymy skrót oryginalnego pliku MD5, aby zweryfikować skrót. Następnie porównaj wartości MD5, które są generowane przez źródło i my.

Jako obie wartości, wartość źródła_md5 i wartość skrótu MD5 naszego pliku dopasowana. Oznacza to, że wartość skrótu MD5 jest weryfikowana.

Wniosek

Po raz pierwszy dowiedzieliśmy się o funkcjach skrótu w tym samouczku. Wyjaśniliśmy, co hashlib.funkcja MD5 () jest i które funkcje są z nią powiązane. Omówiliśmy pewne zalety i zastosowania funkcji skrótu MD5. Nauczyliśmy się używać hashlib.metoda MD5 () do obliczenia wartości skrótu String MD5. Wdrożyliśmy również kilka przykładów, aby nauczyć Cię, jak obliczyć i weryfikować wartość skrótu MD5 małych i dużych plików w Python.