Hashing
MD5, SHA, bcrypt
Hashing er en gratis Ethical Hacking Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Ethical Hacking Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ethical Hacking Academy-kurset indeholder 4 lektioner i alt.
Hvad er en hash?
En hashfunktion tager input af enhver størrelse og producerer et output med fast størrelse, som kaldes et digest. Det samme input giver altid det samme digest.
Det afgørende er, at hashing er en envejsoperation. Du kan ikke matematisk føre et digest tilbage til det oprindelige input. Det er det, der gør hashes forskellige fra både kodning og kryptering.
Egenskaber ved en god hash
En kryptografisk hashfunktion bør være:
- Deterministisk: Det samme input giver det samme output.
- Hurtig at beregne (ved generel hashing), men helst langsom ved hashing af passwords.
- Modstandsdygtig over for preimage-angreb: Når du kender et digest, kan du ikke finde inputtet.
- Kollisionsresistent: Det skal være vanskeligt at finde to input med samme digest.
- Lavineeffekt: En ændring af én bit vender cirka halvdelen af outputbittene.
MD5
MD5 producerer et digest på 128 bit (32 hexadecimale tegn). Det er hurtigt og historisk udbredt, men er kryptografisk kompromitteret: Der findes praktiske kollisionsangreb.
Brug aldrig MD5 til sikkerhed. Du vil stadig møde det til kontrolsummer for filer og i ældre systemer, hvilket gør det til et hyppigt mål under sikkerhedsvurderinger.
echo -n 'password' | md5sum
# 5f4dcc3b5aa765d61d8327deb882cf99SHA-familien
SHA-familien (Secure Hash Algorithm) er mere robust:
- SHA-1: 160 bit. Regnes nu for kompromitteret (kollisionsangrebet »SHADOW HAMMER« / SHAttered). Undgå det.
- SHA-2: Omfatter SHA-256 og SHA-512. Bruges bredt og er i øjeblikket sikkert.
- SHA-3: Et nyere design baseret på Keccak, som er et alternativ til SHA-2.
echo -n 'password' | sha256sum
# 5e884898da28047151d0e56f8dc629...Hashing er ikke kryptering
Kryptering kan reverseres med en nøgle. Hashing kan slet ikke reverseres. Det er netop derfor, hashing bruges til at lagre passwords: Serveren har aldrig brug for originalen.
Når du logger ind, hasher serveren det, du skrev, og sammenligner det med den gemte hash. Hvis de stemmer overens, er du godkendt. Klartekst-passwordet gemmes aldrig.
Problemet: Rainbow tables
Fordi hashning er deterministisk, er hashværdien af 'password' den samme for alle brugere. Angribere beregner på forhånd enorme opslagstabeller med hashværdi-til-klartekst, kaldet rainbow tables.
Hvis to brugere har den samme adgangskode, er deres gemte hashes identiske, hvilket afslører denne oplysning. Simple, hurtige hashes som MD5 eller SHA-256 alene er uegnede til adgangskoder.
Salting
Et salt er en unik, tilfældig værdi, der føjes til hver adgangskode før hashning. Det betyder:
- Identiske adgangskoder giver forskellige hashes.
- Forudberegnede rainbow tables bliver ubrugelige.
Salt-værdien gemmes sammen med hashværdien; den er ikke hemmelig. Dens opgave er at gøre hver hashværdi unik, så angribere tvinges til at knække dem enkeltvis.
stored = salt + hash(salt + password)
# salt is random and unique per userbcrypt: Bygget til adgangskoder
bcrypt er specifikt designet til lagring af adgangskoder. Det er med vilje langsomt og har en konfigurerbar omkostningsfaktor (arbejdsfaktor), som gør det langsommere, efterhånden som hardwaren bliver bedre.
En bcrypt-hash indeholder algoritmen, omkostningen og salt-værdien i én streng. Langsomheden er en fordel: Den begrænser, hvor hurtigt angribere kan gætte.
$2b$12$R9h/cIPz0gi.URNNX3kh2OPST9/PgBkqquzi.Ss7KIUgO2t0jWMUW
# $2b$ = bcrypt, 12 = cost factor, then salt + hashAndre langsomme hashes
Ud over bcrypt omfatter moderne muligheder for hashning af adgangskoder:
- scrypt: kræver meget hukommelse og modstår GPU- og ASIC-angreb.
- Argon2: vinder af Password Hashing Competition, kan indstilles efter tid og hukommelse. Det anbefalede moderne valg.
- PBKDF2: anvender en hurtig hash tusindvis af gange; acceptabel, men svagere end de ovenstående.
HMAC og integritet
Hashes bruges også til integritet, ikke kun adgangskoder. En HMAC (Hash-based Message Authentication Code) kombinerer en hash med en hemmelig nøgle for at kontrollere både en meddelelses integritet og ægthed.
Kontrolsummer for filer (ofte SHA-256) lader dig kontrollere, at en download ikke er blevet ændret. Som hacker kan uoverensstemmende kontrolsummer afsløre ændrede eller ondsindede filer.
Hashes i praksis
Som hacker støder du hele tiden på hashes:
- /etc/shadow på Linux gemmer saltede adgangskode-hashes med præfikser som
$6$(SHA-512) eller$2b$(bcrypt). - Windows gemmer NTLM-hashes i SAM-databasen.
- Webapps gemmer hash af adgangskoder i deres brugertabeller.
Når du genkender præfikset, kan du straks se algoritmen og vælge din strategi til at knække hashværdien.
$6$rounds=5000$salt$hash # SHA-512 crypt
$2b$12$saltandhash... # bcryptHurtigt tjek
Vælg det mest sikre valg til lagring af brugeradgangskoder.
Opsummering
Du forstår nu hashning:
- Hashning er en ensrettet, fastlængde og deterministisk transformation, som adskiller sig fra kodning og kryptering.
- MD5 og SHA-1 er kompromitterede; brug SHA-256 til generel integritetskontrol.
- Brug langsomme, saltede algoritmer til adgangskoder: bcrypt, scrypt eller Argon2.
- Salt-værdier besejrer rainbow tables; HMAC tilføjer nøglebaseret integritet.
Nu skal du udforske symmetrisk og asymmetrisk kryptering med AES og RSA.
Lær Ethical Hacking Academy med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 31
- Lektioner
- 111
Ofte stillede spørgsmål
Er lektionen “Hashing” gratis?
Ja — hele teksten til “Hashing” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Ethical Hacking Academy-kurset, skal du opgradere til CoddyKit PRO. Ethical Hacking Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Hashing”?
MD5, SHA, bcrypt Du øver dig i Ethical Hacking Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Ethical Hacking Academy?
Der kræves ingen tidligere erfaring. Ethical Hacking Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Hashing”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Ethical Hacking Academy-lektion?
Ja. Alle Ethical Hacking Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.