Generator skrótów
Wpisz tekst, a skróty zostaną obliczone jednocześnie czterema algorytmami.
0 zn. · 0 B
Skróty
- SHA-1160 b
Wpisz coś w polu powyżej.
- SHA-256256 b
Wpisz coś w polu powyżej.
- SHA-384384 b
Wpisz coś w polu powyżej.
- SHA-512512 b
Wpisz coś w polu powyżej.
Tekst nie opuszcza twojej przeglądarki. Skrót jest obliczany wbudowaną funkcją kryptograficzną przeglądarki.
Jak to działa
Kryptograficzna funkcja skrótu zamienia tekst dowolnej długości w stałą liczbę znaków. Ten sam tekst zawsze daje ten sam skrót, a najmniejsza zmiana daje zupełnie inny.
Funkcja działa tylko w jedną stronę. Ze skrótu nie da się odtworzyć tekstu i właśnie o to w niej chodzi.
Skróty służą do porównywania plików, wykrywania zmian oraz jako element podpisów i certyfikatów.
SHA-1 nie jest już uważany za bezpieczny. Od 2017 roku istnieją praktyczne sposoby tworzenia dwóch różnych danych o tym samym skrócie SHA-1, więc używaj go tylko do porównań ze starszymi systemami.
Haseł nie należy przechowywać przy użyciu tych funkcji. Są zaprojektowane tak, by działały szybko, co ułatwia zgadywanie. Do haseł służą celowo powolne funkcje, takie jak Argon2id, scrypt i PBKDF2. OWASP zaleca bcrypt tylko w starszych systemach, w których nie ma ani Argon2id, ani scrypt.
Tekst jest kodowany w UTF-8 przed obliczeniem skrótu, więc polskie znaki dają tu ten sam skrót co w każdym innym poprawnym narzędziu.
Jak działa narzędzie
Tekst jest zamieniany na UTF-8 i przekazywany do funkcji przeglądarki crypto.subtle.digest, która oblicza jednocześnie SHA-1, SHA-256, SHA-384 i SHA-512. Skróty są zapisywane małymi cyframi szesnastkowymi, po dwa znaki na bajt: 40 znaków dla SHA-1, 64 dla SHA-256, 96 dla SHA-384 i 128 dla SHA-512. Są obliczane od nowa po każdym wpisanym znaku.
Te same bajty zawsze dają ten sam skrót w każdym poprawnym narzędziu, ale ten sam tekst może dać różne bajty. Litera ł w UTF-8 to dwa bajty, C5 82, a w starszych kodowaniach ISO 8859-2 i Windows-1250 jeden bajt, B3. Słowo z polskimi znakami daje więc tu inny skrót niż w programie, który liczy na jednym z tych kodowań.
Przykład
Tekst abc daje skrót SHA-256 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad, tę samą wartość, którą NIST podaje w przykładzie testowym dla tego algorytmu. Jeśli po abc jest znak nowego wiersza, który dodaje polecenie echo, skrót zmienia się na edeaaff3f1774ad2888673770c6d64097e391bc362d7d6fb34982ddf0efd18cb. Znaku nowego wiersza nie widać w tekście, ale skrót jest inny.
Przypadki graniczne
Narzędzie liczy skrót tekstu, a nie pliku. Sumę kontrolną pobranego pliku liczy się z bajtów pliku, np. poleceniem certutil -hashfile w Windowsie albo sha256sum w Linuksie. Wklejenie zawartości pliku da ten sam skrót tylko wtedy, gdy tekst jest identyczny bajt po bajcie.
Najczęstszą przyczyną niezgodnych skrótów są końce wierszy. Standard HTML wymaga, by pole tekstowe zamieniało każdy koniec wiersza na samo LF, więc tekst z pliku z końcami wierszy z Windowsa, CR LF, ma tu inny skrót niż w certutil. Liczą się też spacje na końcu wiersza i końcowy znak nowego wiersza.
NIST ogłosił 15 grudnia 2022, że SHA-1 ma zostać wycofany najpóźniej do 31 grudnia 2030 i zastąpiony przez SHA-2 lub SHA-3. Spośród funkcji dostępnych tutaj do rodziny SHA-2 należą SHA-256, SHA-384 i SHA-512.