# Vad SHA-256 egentligen är

> Cuadernos Lacre · Koncept · 19 maj 2026
> https://solo2.net/sv/anteckningsboecker/articulos/vad-sha-256-egentligen-ar.html

Ett matematiskt fingeravtryck som ryms i sextiofyra tecken och som ändras helt om ett enda kommatecken i originaltexten flyttas. Varför vi kallar det för ett digitalt lacksigill.

---

## Den enkla idén bakom det tekniska namnet

Föreställ dig att det finns en maskin med en enda springa och en enda skärm. Genom springan matar du in en text: ett ord, en mening, en hel roman. På skärmen visas, ögonblicket efteråt, en sekvens på exakt sextiofyra tecken. Denna sekvens kallar vi professionella läsare för *hash* eller *kryptografisk sammanfattning*; för den allmänna läsaren kan vi tills vidare kalla det ett matematiskt fingeravtryck av texten, precis som ett fingeravtryck är det för en person.

Om du matar in samma text två gånger visar maskinen samma fingeravtryck båda gångerna. Om du matar in en något annorlunda text —ett enda flyttat kommatecken, en stor bokstav som blir liten— visar maskinen ett helt annat fingeravtryck än det första. Inte likt: annorlunda. Dessa två egenskaper tillsammans —determinism och känslighet— är den enkla idén. Allt annat med SHA-256 är maskineriet som ser till att de efterlevs väl.

Det är värt att från början säga vad maskinen inte gör. Den krypterar inte texten. Den döljer den inte. Den sparar den inte. Maskinen tittar på texten, beräknar fingeravtrycket och glömmer sedan texten. Fingeravtrycket tillåter inte att man återskapar texten som producerade det; det tillåter bara, givet en kandidattext, att kontrollera om den stämmer överens med originalet eller inte. Det är därför vi säger att det är en sammanfattning *åt ett håll*: man går dit, men man återvänder inte.

## En hash är inte detsamma som kryptering

Förvirringen är vanlig och bör redas ut: att kryptera och att hasha är olika operationer. Att kryptera består i att transformera en text så att endast innehavaren av nyckeln kan återställa den till sin ursprungliga form. Att hasha består i att producera ett fingeravtryck av texten från vilket originaltexten aldrig kan återvinnas, varken med eller utan nyckel. Den första är reversibel genom design; den andra är irreversibel genom design.

Den praktiska konsekvensen spelar roll. När en applikation säger ”vi sparar ditt lösenord krypterat”, finns det någon som har nyckeln för att dekryptera det — applikationen själv, i vilket fall som helst. När en applikation säger ”vi sparar ditt lösenord hashat”, kan applikationen själv inte läsa originallösenordet även om den ville; den kan bara kontrollera om det du skriver producerar samma fingeravtryck igen. Den andra modellen, rätt utförd, är mycket att föredra framför den första för att lagra lösenord. Senare ska vi se varför ”rätt utförd” kräver något mer än bara SHA-256.

## De fyra egenskaperna som gör en kryptografisk hash användbar

En hashfunktion som förtjänar adjektivet *kryptografisk* uppfyller fyra egenskaper:

1. Determinism. Samma indata ger alltid samma fingeravtryck.
2. Lavineffekt. En liten ändring i indata ger ett helt annat fingeravtryck, utan synlig likhet med det föregående.
3. Motstånd mot invertering. Givet ett fingeravtryck är det inte beräkningsmässigt genomförbart att hitta texten som producerade det.
4. Kollisionsbeständighet. Det är inte beräkningsmässigt genomförbart att hitta två olika texter som producerar samma fingeravtryck.

”Inte beräkningsmässigt genomförbart” betyder inte ”matematiskt omöjligt”. Det betyder att kostnaden i tid, energi och pengar för att uppnå det överstiger med många storleksordningar summan av all rimligt tillgänglig beräkningskapacitet. För SHA-256 mäts den gränsen i tusentals miljarder år även för de mest optimistiska scenarierna med specialiserad hårdvara. Vilket, för läsarens praktiska syften, är detsamma som ”det går inte”.

## SHA-256, mer specifikt

Namnet säger allt. SHA är förkortningen för *Secure Hash Algorithm*: säker hash-algoritm. Siffran 256 anger storleken på fingeravtrycket i bitar: tvåhundrafemtiosex bitar, det vill säga trettiotvå bytes, som visade i hexadecimal form är de sextiofyra tecken som läsaren redan känner igen. Standarden publicerades av amerikanska NIST, det organ som normerar denna typ av funktioner, 2001 som en del av SHA-2-familjen; den nuvarande versionen av standarden, FIPS 180-4, är från 2015.

Dimensionerna förtjänar ett ögonblick. Tvåhundrafemtiosex bitar tillåter två upphöjt till tvåhundrafemtiosex olika värden: ett tal med sjuttioåtta decimala siffror, flera storleksordningar större än det uppskattade antalet atomer i det observerbara universum. Varje text i världen —varje bok, varje e-postmeddelande, varje meddelande— hamnar på ett av dessa värden. Sannolikheten för att två olika texter sammanfaller av en slump är, för praktiska ändamål, omöjlig att skilja från noll.

## Hur det ser ut i kod

## Varför vi kallar det för lacksigill

I den europeiska korrespondensen från 1400- till 1800-talet förseglade lacket brevet. En droppe smält vax, ett sigill pressat ovanpå, och brevet blev märkt på ett unikt sätt. Det skyddade inte innehållet från den beslutsamme tjuvkikaren —papperet kunde läsas mot ljuset, lacket kunde brytas— men det bevisade det. Varje ändring av förseglingen var synlig för mottagaren redan innan papperet öppnades. Lacket förhindrade inte skadan; det deklarerade den.

SHA-256 för innehållet i varje Cuaderno fyller samma funktion i sin digitala version. Om ett enda ord i artikeln ändrades mellan det ögonblick den publicerades och det ögonblick du läser den, skulle det hexadecimala sigillet längst ner i texten inte längre stämma överens med SHA-256 för texten du har framför dig. Vilken läsare som helst med fem rader kod skulle kunna kontrollera det. Publikationen kan inte skriva om sin historia utan att sigillet avslöjar det. Det skyddar inte mot skadan; det gör den verifierbar.

## Vad en hash inte är

Fyra användningsområden begärs ibland av SHA-256 som inte tillhör den:

1. Kryptera. En hash sammanfattar; den döljer inte. Om du vill att texten inte ska kunna läsas behöver du kryptera den, inte hasha den.
2. Autentisera författaren. En hash säger inte vem som skrev texten, bara vilken text som hasglades. För att associera författarskap krävs en kryptografisk signatur ovanpå hashen, inte hashen i sig.
3. Lagra lösenord. Här finns en fälla som är värd att förstå. SHA-256 är utformad för att vara mycket snabb —vilket är bra för många saker, men dåligt för detta. En angripare med specialiserad hårdvara kan prova miljarder lösenord per sekund mot en SHA-256-hash tills hen hittar ditt. För att spara lösenord bör man använda medvetet långsamma nyckelderiveringsfunktioner som Argon2, scrypt eller bcrypt, kombinerat med ett *salt* (en unik slumpmässig datapunkt per användare, som förhindrar att två personer med samma lösenord får samma hash).
4. Läsa hashen som författaridentifierare. Det är den inte. En hash identifierar innehållet. Om två personer hashar ordet *hej* med SHA-256 får båda samma sammanfattning — och det är den centrala egenskapen, inte en brist: om det vore olika sammanfattningar skulle vi inte kunna kontrollera överensstämmelse mellan det publicerade och det mottagna.

## Var SHA-256 dyker upp i din vardag

Även om du inte ser det, bär SHA-256 upp en stor del av det du använder dagligen på internet. Bitcoins blockkedja byggs genom att länka SHA-256 för varje block till nästa; att ändra ett tidigare block tvingar fram en omberäkning av hela den efterföljande kedjan. Git, systemet som halva världens kod versionshanteras med, identifierar varje commit genom SHA-256 (i nyare versioner) eller genom dess föregångare SHA-1 (i äldre versioner) av dess fullständiga innehåll. HTTPS-certifikaten som verifierar en webbplats identitet när du går in på den bär med sig ett associerat SHA-256-fingeravtryck. Programvarunedladdningar åtföljs ofta av en SHA-256 publicerad av utvecklaren så att du kan verifiera att filen inte ändrades på vägen. Och som vi har sagt, längst ner i varje Cuadernos Lacre.

## För den professionella läsaren

Fyra operativa påminnelser för den som beslutar om eller auditerar system:

1. Hash är inte kryptering. Om en leverantör förväxlar de två termerna i sin tekniska dokumentation bör man fråga vad hen menar exakt.
2. För att lagra lösenord bör man aldrig använda enbart SHA-256. SHA-256 är för snabb för denna uppgift (se punkt 3 i *Vad en hash inte är*). Den nuvarande standarden är Argon2id: långsam genom design, konfigurerbar efter serverns kapacitet, kombinerat med ett unikt slumpmässigt *salt* per användare.
3. För dokumentintegritet —kontrakt, akter, filer— är SHA-256 fortfarande referensstandard. Det är den som används av kvalificerade tidsstämplingstjänster i EU.
4. För långtidsbevarande (decennier) bör man även beräkna och arkivera en SHA-3 eller en SHA-512 tillsammans med SHA-256; kryptografisk försiktighet rekommenderar att man inte förlitar sig på en enda funktion under sekelgamla arkiv.

Föreställ dig att du har byggt världens mest avancerade dominobana: tusentals brickor, dussintals förgreningar, mekaniska broar och ramper som korsar hela rummet, noggrant placerade bit för bit.

Om du ger den första brickan en knuff faller kedjan i en exakt och repeterbar sekvens. Samma uppställning, samma första knuff → identiskt slutligt mönster av fallna brickor, gång på gång.

Här är det intressanta: flytta en enda bricka en halv centimeter åt sidan innan du börjar och knuffa igen. En ramp som skulle ha aktiverats förblir orörlig, en bro faller inte, en annan förgrening utlöses. Det slutliga mönstret av brickor på golvet är helt oigenkännligt jämfört med det första.

SHA-256 är matematiskt sett denna bana. Texten du skriver är brickornas startposition. Algoritmen är knuffen som frigör kaskaden. Och slutresultatet – det vi kallar *hash* – är ögonblicksbilden av golvet när allt har stannat. Ändra ett enda kommatecken i originaltexten och bilden blir radikalt annorlunda. Så enkelt, och så drastiskt.

---

*Om du går tillbaka till slutet av denna artikel ser du ett hexadecimalt sigill på sextiofyra tecken. Det är SHA-256 för texten du just har läst, på detta språk. Om vi översatte artikeln skulle sigillet vara ett annat; om ett ord i den svenska versionen ändrades skulle det svenska sigillet ändras. Sigillet skyddar inte innehållet —det finns andra verktyg för det— utan det identifierar det unikt. Och det, så blygsamt det än låter, räcker för att inget steg i den redaktionella kedjan ska kunna ändra det som sagts utan att det märks. Resten —kryptering, signering, identifiering— byggs ovanpå denna enkla idé.*

## Källor och vidare läsning

- NIST — *FIPS PUB 180-4: Secure Hash Standard (SHS)*, augusti 2015. Officiell specifikation för SHA-2-familjen, inklusive SHA-256.
- RFC 6234 — *US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)*, IETF, maj 2011. Normativ version för implementatörer.
- Ferguson, N.; Schneier, B.; Kohno, T. — *Cryptography Engineering: Design Principles and Practical Applications* (Wiley, 2010). Kapitlen 5 och 6 täcker hashfunktioner och deras legitima och illegitima användningsområden.
- Nakamoto, S. — Bitcoin: A Peer-to-Peer Electronic Cash System (2008). Praktiskt exempel på användning av SHA-256 för att länka block i en struktur som är oföränderlig genom konstruktion.
- Förordning (EU) 910/2014 (eIDAS) — ramverk för kvalificerade tidsstämplingstjänster. SHA-256 är referensfunktionen för kvalificerade elektroniska signaturer och sigill utfärdade i EU.
- Referensimplementering i Zig: std.crypto.hash.sha2.Sha256 i språkets officiella repository (*github.com/ziglang/zig* → lib/std/crypto/sha2.zig). Det är den optimerade och auditerade versionen som Solo2 faktiskt använder. Användbar för att jämföra med bilagans didaktiska implementering.

---

*Cuadernos Lacre · En utgåva från Menzuri Gestión S.L. · skriven av R.Eugenio · redigerad av teamet bakom Solo2.*
*https://solo2.net/sv/anteckningsboecker/*
