SHA-256-hashgenerator

Beregn SHA-256-hashverdien av tekst, hex-byte eller en hvilken som helst fil med Web Crypto API-et i nettleseren. Lim inn en publisert kontrollsum i feltet Sammenlign med for å verifisere en nedlasting.

Alle algoritmer

Kjører helt i nettleseren din. Ingenting lastes opp.

Slik bruker du verktøyet

  1. Skriv eller lim inn tekst, bytt inndata til Hex for rå byte, eller åpne filen du vil kontrollere.
  2. Behold SHA-256 under Algoritme, og velg hex (små bokstaver), HEX (store bokstaver) eller Base64 under Utdata som.
  3. Lim inn kontrollsummen fra nedlastingssiden i feltet Sammenlign med. Samsvarer betyr at filen er identisk.
  4. Kopier resultatet, eller kopier SHA-384, SHA-512 eller en annen hashverdi fra tabellen Alle algoritmer.

Hva er SHA-256?

SHA-256 er det mest brukte medlemmet av SHA-2-familien. Den ble utviklet av NSA og standardisert av NIST i 2002 i FIPS 180-2. I dag er den spesifisert i FIPS 180-4, og RFC 6234 beskriver de samme algoritmene med referansekode. SHA-256 behandler blokker på 512 bit i 64 runder med 32-biters aritmetikk og gir en hashverdi på 256 bit: 64 hex-tegn eller 44 Base64-tegn. Ingen praktiske kollisjonsangrep eller preimage-angrep er kjent, og den er standardvalget for:

  • TLS-sertifikater og -håndtrykk, og kodesignering;
  • Bitcoin, som bruker SHA-256 to ganger for blokkhasher, arbeidsbevis (proof of work) og transaksjons-ID-er (kontrollsummen i Base58Check-adresser kommer fra den samme doble hashen);
  • kontrollsumfiler som SHA256SUMS, hashverdier for containerbilder (sha256:...) og Subresource Integrity.

Slik verifiserer du en nedlasting

Åpne den nedlastede filen, og lim inn utgiverens kontrollsum i feltet Sammenlign med. Store og små bokstaver spiller ingen rolle, og en Base64-verdi fungerer også. Samsvarer betyr at filen er byte for byte den samme som kontrollsummen ble laget av. Det beviser ikke hvem som har laget den, så hent kontrollsummen fra utgiverens HTTPS-nettsted eller fra en signert SHA256SUMS-fil, ikke fra speilet som leverte nedlastingen.

For tekst beregnes hashen av byte, ikke av tegn. Windows-linjeskift (CRLF), en byterekkefølgemarkør (BOM) eller UTF-16 i stedet for UTF-8 gir hver for seg en helt annen SHA-256. Bruk valget Tegnkoding eller hex-inndata for å hashe nøyaktig de samme bytene som et annet system hashet.

Lengdeutvidelse og passord

I likhet med MD5, SHA-1 og SHA-512 er SHA-256 sårbar for lengdeutvidelsesangrep (length extension): Gitt SHA-256(secret + message) og lengden på hemmeligheten kan en angriper beregne en gyldig hash for den samme meldingen etterfulgt av utfylling og data angriperen selv velger, uten å kjenne hemmeligheten. For å signere eller autentisere data med en nøkkel bruker du HMAC-SHA256 fra HMAC-generatoren i stedet for å hashe nøkkelen og meldingen sammen.

Hastigheten er også grunnen til at en vanlig SHA-256 er feil måte å lagre passord på: Alle som får tak i hashene, kan teste gjetninger like raskt som grafikkortene deres beregner SHA-256, og like passord gir like hasher. Bruk Argon2id, scrypt, bcrypt eller PBKDF2-HMAC-SHA256 med et høyt antall iterasjoner; alle disse legger til salt.

SHA-256 på kommandolinjen og i kode

$ printf 'abc' | sha256sum
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad  -

sha256sum -c SHA256SUMS                  # Linux: kontroller en liste med filer
shasum -a 256 file.iso                   # macOS
certutil -hashfile file.iso SHA256       # Windows
Get-FileHash file.iso                    # PowerShell (SHA256 er standard)

# Python
hashlib.sha256(data).hexdigest()

// Node.js
crypto.createHash('sha256').update(data).digest('hex')

Verdien for abc er testvektoren fra standarden; skriv abc i feltet ovenfor for å se det samme resultatet. Tabellen Alle algoritmer viser også SHA-384-, SHA-512-, SHA-1-, MD5- og CRC-verdier for inndataene dine.

Eksempler

Inndata (UTF-8)SHA-256
Hello, World!dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
Base64.is63f2f446bc11a1f96175c0f77bdac08ca1b184ba42c3a42c34ddcbce00b1b800
你好670d9743542cae3ea7ebe36af56bd53648b0a1126162e78d81a32934a711302e

Ofte stilte spørsmål

Kan SHA-256 dekrypteres?

Nei. SHA-256 er en enveis hash, ikke kryptering. Såkalte dekrypteringstjenester på nett slår bare opp hasher i tabeller med kjente inndata, så de finner vanlige passord og korte strenger, men aldri noe langt eller tilfeldig.

Hvorfor samsvarer ikke SHA-256-hashen min med den publiserte kontrollsummen?

Som oftest er nedlastingen ufullstendig eller en annen versjon, eller du har hashet filnavnet i stedet for selve filen. Last inn selve filen med Åpne fil. Kontroller også at begge verdiene bruker samme algoritme: En hex-verdi på 128 tegn kommer fra en 512-biters hash som SHA-512, ikke fra SHA-256.

Hvordan får jeg en SHA-256-hash i Base64?
Velg Base64 under Utdata som. Subresource Integrity (sha256--verdier, selv om sha384- er vanligere) og HTTP-headeren Content-Digest bruker denne formen. Hex og Base64 inneholder de samme 32 bytene; konverter mellom dem med Base64 til hex.
Er SHA-256 det samme som SHA-2?

SHA-2 er en familie: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 og SHA-512/256. SHA-256 er det vanligste medlemmet. SHA-3 (FIPS 202) er en separat konstruksjon basert på Keccak og gir andre resultater.

Hvor lang er en SHA-256-hash?
32 byte: 64 hex-tegn eller 44 Base64-tegn som slutter på =. SHA3-256 og BLAKE2s har samme lengde; hashidentifikatoren viser slike kandidater for en ukjent hash.