Controlesom
Vul een tekst in, dan worden de controlesommen met vier methoden tegelijk berekend.
0 Tekens · 0 Bytes
Controlesommen
- SHA-1160 bits
Schrijf iets in het veld hierboven.
- SHA-256256 bits
Schrijf iets in het veld hierboven.
- SHA-384384 bits
Schrijf iets in het veld hierboven.
- SHA-512512 bits
Schrijf iets in het veld hierboven.
De tekst verlaat je browser nooit. Er wordt gerekend met de cryptofunctie van de browser zelf.
Zo werkt het
Een cryptografische controlesom maakt van een tekst van willekeurige lengte een vast aantal tekens. Dezelfde tekst geeft altijd dezelfde som, terwijl de kleinste wijziging een volstrekt andere geeft.
De functie gaat maar één kant op. Er is geen weg terug van de som naar de tekst, en precies daar is het om te doen.
Controlesommen dienen om bestanden te vergelijken, wijzigingen te herkennen, en als bouwsteen in handtekeningen en certificaten.
SHA-1 geldt niet meer als veilig. Sinds 2017 bestaan er werkbare manieren om twee verschillende teksten met dezelfde SHA-1-som te maken, dus gebruik het alleen om aan te sluiten op oudere systemen.
Wachtwoorden hoor je niet met deze functies op te slaan. Ze zijn op snelheid gebouwd, wat het uitproberen makkelijk maakt. Voor wachtwoorden neem je bewust trage methoden als Argon2id, scrypt en PBKDF2. OWASP raadt bcrypt alleen aan voor oudere systemen waar Argon2id en scrypt geen van beide beschikbaar zijn.
De tekst wordt als UTF-8 gecodeerd voordat er wordt gerekend, zodat letters met een trema of accent hier dezelfde som geven als in andere correcte tools.
Zo werkt de tool
De tekst wordt UTF-8 en gaat naar crypto.subtle.digest van de browser, die SHA-1, SHA-256, SHA-384 en SHA-512 tegelijk berekent. De controlesommen worden in kleine hexadecimale tekens geschreven, twee per byte: 40 tekens voor SHA-1, 64 voor SHA-256, 96 voor SHA-384 en 128 voor SHA-512. Ze worden bij elk teken dat je typt opnieuw berekend.
Dezelfde bytes geven in elke correcte tool dezelfde controlesom, maar dezelfde tekst kan verschillende bytes worden. De ë is in UTF-8 twee bytes, C3 AB, maar in de oudere codering Latin-1 één byte, EB. Een woord als België geeft hier daarom een andere controlesom dan in een programma dat met Latin-1 werkt.
Rekenvoorbeeld
abc geeft de SHA-256-controlesom ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, dezelfde waarde die NIST in zijn testvoorbeeld voor het algoritme geeft. Staat er na abc een regelovergang, zoals het commando echo toevoegt, dan wordt de controlesom edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb. De regelovergang zie je niet in de tekst, maar de controlesom is anders.
Randgevallen
De tool rekent met tekst, niet met bestanden. De controlesom van een gedownload bestand wordt over de bytes van het bestand berekend, bijvoorbeeld met certutil -hashfile in Windows of sha256sum in Linux. De inhoud van het bestand plakken geeft alleen dezelfde controlesom als de tekst byte voor byte gelijk is.
Regeleinden zijn de meest voorkomende reden dat controlesommen niet overeenkomen. De HTML-standaard schrijft voor dat een tekstvak elk regeleinde in een losse LF verandert, dus tekst uit een bestand met Windows-regeleinden, CR LF, geeft hier een andere controlesom dan in certutil. Spaties aan het eind van een regel en een laatste regelovergang tellen ook mee.
Op 15 december 2022 maakte NIST bekend dat SHA-1 uiterlijk op 31 december 2030 moet zijn uitgefaseerd en vervangen door SHA-2 of SHA-3. Van de functies hier horen SHA-256, SHA-384 en SHA-512 bij SHA-2.