0Pricing
Cryptology Academy · Lekcja

Zastosowania funkcji skrótu: sumy kontrolne, HMAC i Git

Zobacz zastosowanie funkcji skrótu w przechowywaniu haseł, integralności danych i kontroli wersji.

Zastosowania funkcji skrótu: sumy kontrolne, HMAC i Git to bezpłatna lekcja Cryptology Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cryptology Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Wprowadzenie

Funkcje skrótu pełnią w rzeczywistych systemach trzy kluczowe role: weryfikują integralność danych (sumy kontrolne), uwierzytelniają wiadomości (HMAC) i śledzą historię kodu (Git).

Sumy kontrolne plików

Podczas pobierania oprogramowania dostawcy publikują hash SHA-256. Po pobraniu pliku należy obliczyć jego hash i porównać: sha256sum ubuntu-24.04.iso # Should match published value exactly

Integralność danych w pamięci masowej

Bazy danych, takie jak ZFS i Btrfs, obliczają sumy kontrolne SHA-256 dla każdego bloku danych. Podczas odczytu suma kontrolna jest weryfikowana. Ciche uszkodzenie dysku jest wykrywane automatycznie.

Pamięć adresowana zawartością

Git, IPFS i Docker używają pamięci adresowanej zawartością: nazwa każdego obiektu TO jego hash. SHA-256(content) = unikatowy identyfikator. Identyczna zawartość jest przechowywana tylko raz, a duplikaty są natychmiast wykrywane.

Wykorzystanie SHA-1 (i SHA-256) w Git

Każdy commit, element drzewa i blob w Git ma hash SHA-1. Hash commita obejmuje: zawartość + metadane + hashe rodziców. Zmiana dowolnego bitu zmienia hash, dzięki czemu manipulacje w historii są wykrywalne.

Konstrukcja HMAC

HMAC-SHA256(key, msg) = SHA256((key' XOR opad) || SHA256((key' XOR ipad) || msg)) Konstrukcja z podwójnym haszowaniem i wypełnieniem XOR zapobiega atakom rozszerzenia długości na uwierzytelnianie MAC z użyciem klucza.

HMAC w Pythonie

import hmac, hashlib def create_mac(key: bytes, msg: bytes) -> str: return hmac.new(key, msg, hashlib.sha256).hexdigest() mac = create_mac(b'secret', b'Hello!')

Porównywanie w stałym czasie

HMAC-y należy zawsze porównywać za pomocą hmac.compare_digest(), a NIE operatora ==. Ataki czasowe: porównywanie kończące się przedwcześnie ujawnia długość zgodnego fragmentu. hmac.compare_digest porównuje wszystkie bajty w stałym czasie.

HMAC w uwierzytelnianiu API

Webhooki GitHub: każdy ładunek jest podpisywany za pomocą HMAC-SHA256 z użyciem współdzielonego sekretu. Odbierz webhook → oblicz HMAC → porównaj z nagłówkiem X-Hub-Signature-256.

Weryfikacja hasła za pomocą hasha

Przebieg logowania: użytkownik przesyła hasło → serwer oblicza hash → porównuje go z zapisanym hashem. Serwer nigdy nie odszyfrowuje hasła — ponownie oblicza jego hash i porównuje wyniki. Zapisany hash nie ujawnia hasła.

Zastosowania drzewa Merkle'a

Drzewa Merkle'a tworzą drzewo hashy dla danych. Bloki Bitcoina zawierają korzeń Merkle'a wszystkich transakcji. Certificate Transparency używa drzew Merkle'a do tworzenia odpornych na manipulacje dzienników audytowych.

Szybkie sprawdzenie

Dlaczego porównania HMAC muszą używać hmac.compare_digest(), a nie operatora ==?

Podsumowanie

Doskonale! Zastosowali już Państwo hashe w rzeczywistych scenariuszach. Następnie dokładniej omówimy AES — najczęściej wdrażany na świecie standard szyfrowania symetrycznego.

Często zadawane pytania

Czy lekcja „Zastosowania funkcji skrótu: sumy kontrolne, HMAC i Git” jest bezpłatna?

Tak — pełny tekst „Zastosowania funkcji skrótu: sumy kontrolne, HMAC i Git” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cryptology Academy, przejdź na CoddyKit PRO. Kurs Cryptology Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Zastosowania funkcji skrótu: sumy kontrolne, HMAC i Git”?

Zobacz zastosowanie funkcji skrótu w przechowywaniu haseł, integralności danych i kontroli wersji. Ćwiczysz Cryptology Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Cryptology Academy?

Nie wymagamy żadnego doświadczenia. Cryptology Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Zastosowania funkcji skrótu: sumy kontrolne, HMAC i Git”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Cryptology Academy?

Tak. Każda lekcja Cryptology Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Co wyróżnia dobrą funkcję skrótu
  2. MD5: historia, zastosowania i przyczyny złamania
  3. Rodzina SHA-1 i SHA-2
  4. Zastosowania funkcji skrótu: sumy kontrolne, HMAC i Git
← Powrót do Cryptology Academy