Hash- och kryptoverktyg - MD5, SHA-256, UUID, Base64 och URL-kodning

Hash- och kryptoverktyg – MD5, SHA-256, UUID, Base64 och URL-kodning

Skillnad mellan hashalgoritmerna
AlgoritmLängdStatusAnvändning
MD5128 bitar (32 hex)OsäkerEndast filintegritet, ej säkerhet
SHA-1160 bitar (40 hex)OsäkerGit-commit-hash, ej kryptering
SHA-256256 bitar (64 hex)SäkerSSL/TLS, blockchain, dataintegritet
SHA-512512 bitar (128 hex)SäkerHög säkerhet, snabbare på 64-bit
Vanliga frågor
Vad är en hash-funktion?
En hash-funktion är en matematisk algoritm som omvandlar valfri datamängd till en fast längd. Samma indata ger alltid samma hash, men det är praktiskt taget omöjligt att gå bakåt från hashvärdet till originalet.
Varför ska man undvika MD5 för säkerhet?
MD5 har kända kollisionsattacker, vilket innebär att man kan skapa två olika filer med samma MD5-hash. För filintegritetskontroll fungerar MD5 fortfarande, men för signaturer eller lösenord ska SHA-256 eller SHA-512 användas.
Vad är ett UUID?
UUID (Universally Unique Identifier) är ett 128-bitars värde som med extremt hög sannolikhet är unikt globalt. Vår generator skapar UUID v4, som är slumpmässigt genererat. Risken för att två UUID v4 kolliderar är cirka 1 på 10^36.
Vad är Base64-kodning?
Base64 är ett sätt att representera binär data som ASCII-text. Används bland annat för att inbädda bilder i HTML/CSS, skicka filer via e-post och koda autentiseringsdata i HTTP-headers. Resulterar i ungefär 33 % större datamängd än originalet.
Sker hashning lokalt eller skickas datan?
Allt körs lokalt i din webbläsare via Web Crypto API. Datan skickas aldrig till någon server. Du kan stänga av internet och verktyget fungerar fortfarande.

Komplett kryptoverktyg för utvecklare

Verktyget samlar fyra grundläggande operationer som utvecklare och systemadministratörer ofta behöver: hashning av data till MD5/SHA-1/SHA-256/SHA-512, generering av UUID v4-identifierare, Base64-kodning samt URL-kodning. Allt körs lokalt i webbläsaren via Web Crypto API och crypto.getRandomValues, inga uppgifter skickas till någon server.

Det är en avgörande punkt om du arbetar med känsliga data. Många onlineverktyg för hashning och kodning skickar din indata till en server för bearbetning, vilket kan vara en säkerhetsrisk om datan innehåller lösenord, API-nycklar eller persondata. Vårt verktyg gör allt på din enhet och fortsätter fungera även om du kopplar bort internet.

Vad verktyget kan

  • Hash-generering i fyra algoritmer samtidigt (MD5, SHA-1, SHA-256, SHA-512)
  • UUID v4 i singel eller batch, med eller utan bindestreck, gemener eller versaler
  • Base64-kodning i båda riktningarna med UTF-8-stöd
  • URL-kodning i båda riktningarna för adresssträngar och query-parametrar
Allt sker lokalt via Web Crypto API
Hashvärden genereras med webbläsarens inbyggda crypto.subtle.digest-funktion (MD5 har egen JavaScript-implementation eftersom Web Crypto API inte stödjer den osäkra algoritmen). UUID-numreringen använder crypto.getRandomValues för kryptografiskt säker slump. Verktyget fungerar offline.

Hashalgoritmer i detalj

En hash-funktion omvandlar valfri datamängd till en sträng med fast längd. Samma indata ger alltid samma hash, men det är beräkningsmässigt omöjligt att vända processen och få fram originaldatan från hashen. Algoritmerna används för dataintegritetskontroll, digital signering, lösenordslagring och kryptografiska protokoll.

MD5: föråldrad men fortfarande använd

MD5 utvecklades 1991 och ger en 128-bitars hash i hexadecimal form (32 tecken). Algoritmen är snabb men har sedan 2004 kända kollisionsattacker, det innebär att forskare kan skapa två olika datafiler som har exakt samma MD5-hash. Det är förödande för säkerhet eftersom en angripare kan ersätta en signerad fil med en skadlig fil utan att hashen avslöjar det.

MD5 ska aldrig användas för:

  • Lösenordslagring (SHA-256 eller bcrypt/Argon2 är minimum)
  • Digitala signaturer (SHA-256 eller högre)
  • Säkerhetscertifikat (SHA-256 är industristandard)
  • Skydd mot manipulation av viktiga dokument

MD5 fungerar däremot fortfarande för:

  • Snabb integritetskontroll av nedladdningar (när andra säkerhetslager finns)
  • Cache-nyckelgenerering där säkerhet inte är ett krav
  • Deduplicering av filer i icke-säkerhetskritiska system

SHA-1: också föråldrad

SHA-1 ger en 160-bitars hash (40 hexadecimala tecken) och utvecklades av NSA 1993. Liksom MD5 har den kända kollisionsattacker, Google demonstrerade en praktisk SHA-1-kollision 2017. Algoritmen används fortfarande i Git för commit-hashning, men nya säkerhetstillämpningar bör undvika SHA-1.

SHA-1 fasades formellt ut av NIST 2011 och de flesta webbläsare slutade lita på SHA-1-certifikat 2017. Microsoft och Apple har också tagit bort SHA-1 från sina TLS-stackar i moderna versioner.

SHA-256: dagens standard

SHA-256 är del av SHA-2-familjen och ger en 256-bitars hash (64 hexadecimala tecken). Det är den hashalgoritm som används för:

  • SSL/TLS-certifikat på webben (HTTPS)
  • Bitcoins blockchain (hashning av block)
  • Apple och Microsoft kodsignering
  • Linux-pakets integritetskontroll
  • Filintegritet hos NIST och SS-säkerhetsstandarder

Inga praktiska kollisionsattacker mot SHA-256 är kända. För nya projekt är SHA-256 det självklara valet om du inte har specifika krav på högre säkerhet.

SHA-512: för extra säkerhet

SHA-512 ger en 512-bitars hash (128 hexadecimala tecken) och har samma matematiska konstruktion som SHA-256 men med större ord-storlek. På 64-bitars hårdvara är SHA-512 ofta snabbare än SHA-256 eftersom den utnyttjar processorns bredd bättre.

Använd SHA-512 när du behöver längre hash för specifika protokoll (vissa militära standarder kräver minst 384 bitar) eller när du vill ha extra marginal mot framtida kryptoanalys.

UUID och unika identifierare

UUID står för Universally Unique Identifier och är ett 128-bitars värde som med extremt hög sannolikhet är unikt globalt. Standarden specificeras i RFC 4122 och har flera versioner som löser olika problem.

UUID v4: slumpmässig

Vår generator skapar UUID v4, som genereras helt slumpmässigt utan att avslöja information om systemet. Bara sex bitar är fasta (för att markera versionen), resten är slumpmässiga. Det innebär 122 bitar av entropi och cirka 5,3 × 10^36 möjliga UUID v4. För att uppnå 50 procents sannolikhet för en kollision (enligt birthday paradox) behöver man generera omkring 2,7 × 10^18 UUID v4, närmare tre triljoner stycken. För praktiska mängder data är kollisioner därmed försumbara.

Det är därför UUID v4 används för:

  • Primärnycklar i distribuerade databaser
  • Sessions-ID i webbappar
  • Filbenämning i molnlagring
  • Korrelation av loggar mellan tjänster
  • Idempotens-nycklar i API-anrop

Versionerade UUID

UUID v1 inkluderar en tidsstämpel och MAC-adress, vilket gör dem teoretiskt spårbara till en specifik dator. Det är bra för debugging men dåligt för anonymitet. UUID v3 och v5 är hash-baserade och deterministiska, samma indata ger alltid samma UUID. Vi rekommenderar v4 för nästan alla användningsfall.

Base64-kodning

Base64 är ett sätt att representera binär data som ren ASCII-text. Det används överallt på internet för att skicka filer, bilder och annan binär data via protokoll som ursprungligen designades för text.

Hur Base64 fungerar

Algoritmen tar tre bytes (24 bitar) i taget och delar upp dem i fyra 6-bitars grupper. Varje 6-bitars grupp blir en bokstav i Base64-alfabetet (A-Z, a-z, 0-9, plus + och /). Det innebär att Base64-kodad data är cirka 33 procent större än originalet, tre bytes blir fyra tecken.

Vanliga användningsområden

  • Inbäddade bilder i CSS: data:image/png;base64,iVBORw0KGgo...
  • HTTP Basic Auth: användarnamn och lösenord kodas som Base64(user:pass)
  • E-postbilagor: MIME-protokollet använder Base64 för binära filer
  • JSON Web Tokens (JWT): header, payload och signatur i Base64
  • OpenSSH-nycklar: den långa strängen i id_rsa.pub är Base64-kodad
Base64 är inte kryptering
En vanlig missuppfattning är att Base64-kodad data är ”krypterad” eller på något sätt skyddad. Det är fel, Base64 är bara en annan representation av samma data, lika lättläst som klartexten för någon som vet att avkoda. Använd aldrig Base64 ensamt för att dölja känslig information.

URL-kodning (procentkodning)

URL-kodning, även kallad procentkodning, omvandlar tecken som inte får finnas i en URL till en kodad version. Den vanligaste varianten är att ersätta mellanslag med %20 eller +, och att koda nordiska tecken som %C3%A5 för ”å”.

När URL-kodning behövs

Webb-URLs använder ASCII-teckenuppsättningen och har specialbetydelse för vissa tecken (?, =, &, / med flera). Om du vill skicka data som innehåller dessa tecken via en query-parameter måste de kodas. Verktyget hanterar både kodning och avkodning, vilket är användbart när du analyserar query-strängar i loggar eller felsöker URL-baserade buggar.

Exempel på vanlig URL-kodning:

  • Mellanslag → %20
  • å → %C3%A5 (UTF-8)
  • ? → %3F
  • = → %3D
  • & → %26

Säkerhet och integritet

Hela verktyget körs i din webbläsare. Du kan stänga av internet och hashning, UUID-generering, Base64- och URL-kodning fortsätter fungera. Inga uppgifter loggas, sparas eller skickas till någon server, vilket är centralt om du arbetar med:

  • Lösenord som ska hashas för migration mellan system
  • API-nycklar som ska Base64-kodas för HTTP-headers
  • Persondata under GDPR där tredjepartshantering är problematisk
  • Konfidentiella dokument där en server-roundtrip vore en risk

Andra verktyg på Monc

Vi har byggt tolv kostnadsfria verktyg som löser vardagsproblem direkt i webbläsaren. Testa till exempel: dagräknare · lösenordsgenerator · åldersräknare · färgkonverterare. Alla körs lokalt utan att data lämnar din enhet.

Källor och vidare läsning