Narzędzia deweloperskie
Formatuj JSON, przekształcaj kodowane dane, sprawdzaj niezweryfikowane JWT, bezpiecznie testuj regex, licz hashe, konwertuj timestampy i generuj UUID.
Zacznij od wartości, którą trzymasz
- Formatter JSON
- Odpowiedź przyszła jako jedna nieczytelna linia albo nie chce się sparsować i potrzebujesz pozycji błędu.
- Konwerter JSON/YAML
- Plik konfiguracyjny musi przejść między pipelinem w YAML a API w JSON.
- Konwerter CSV/JSON
- Eksport z arkusza ma stać się rekordami albo rekordy mają wrócić do arkusza.
- Dekoder JWT
- Logowanie się sypie i chcesz zobaczyć, jakie oświadczenia token faktycznie niesie.
- Koder i dekoder Base64
- W polu, w data URL albo w nagłówku siedzi ciąg liter kończący się jednym lub dwoma znakami równości.
- Koder i dekoder URL
- Parametr zapytania jest pełen znaków procenta albo właśnie go budujesz, a wartość zawiera ampersand.
- Generator skrótów SHA
- Porównujesz pobrany plik z opublikowaną sumą kontrolną albo potrzebujesz stabilnego odcisku tekstu.
- Tester regex
- Wzorzec łapie za dużo, za mało albo nic, a ty chcesz zobaczyć, który fragment tekstu wziął.
- Konwerter timestampów
- W linii logu stoi dziesięcio- lub trzynastocyfrowa liczba w miejscu, gdzie powinna być data.
- Generator UUID v4
- Potrzebujesz identyfikatora natychmiast — do fixture'a, do wiersza testowego, do klucza tymczasowego.
Co te narzędzia odczytują, a czego nie sprawdzają
Każde z tej dziesiątki coś odczytuje albo przekształca; żadne za to nie ręczy. Narzędzie do JWT dzieli token i dekoduje dwie jego części w JSON — nie sprawdza podpisu, wystawcy, odbiorcy ani tego, czy token wygasł w marcu, więc token wyświetlający się tu bez zarzutu może i tak zostać odrzucony przez usługę, o którą chodzi. Base64 to kodowanie, nie tajemnica: to, co zakodujesz, odczyta bez wysiłku każdy, kto to dostanie. Hash jest jednokierunkowy, ale nie jest prywatny — krótkie albo popularne wejście znajduje się w tablicy tęczowej natychmiast.
Tester wyrażeń regularnych ma granicę, którą widać. Wzorzec działa w osobnym wątku roboczym zabijanym po 750 milisekundach i zwraca najwyżej dwieście dopasowań, więc wyrażenie wpadające w katastrofalny nawrót zawiesza jeden wątek zamiast strony. To chroni interfejs, nie certyfikuje wzorca. Silnik JavaScriptu nawraca, a RE2 w Go czy dopasowywacz w bazie danych zachowują się inaczej, więc wzorzec, który tu kończy pracę, gdzie indziej nadal może się zapętlić.
To są narzędzia na moment, w którym trzymasz w ręku wartość i chcesz zobaczyć, co jest w środku — ładunek tokenu, timestamp, zakodowany parametr, podejrzany identyfikator. Do walidacji schematu w całym repozytorium albo sprawdzenia megabajta JSON-a w pipelinie użyj tego, co już masz w buildzie; to inne zadanie i karta przeglądarki jest na nie złym miejscem.
Najczęstsze pytania o Narzędzia deweloperskie
Czy zdekodowanie JWT oznacza, że token jest ważny?
Nie. Dekodowanie odczytuje nagłówek i ładunek, które są tylko Base64URL i nigdy nie były ukryte. Ważność to podpis sprawdzony kluczem wystawcy, a do tego potrzebny jest ten klucz — czyli coś, czego nie wkleja się na stronę internetową. To, co tu widzisz, traktuj jako deklarację tokenu o samym sobie, nie jako fakt.
Czy można wkleić prawdziwy token albo dane produkcyjne?
Przetwarzanie jest uczciwe — nic nie jest wysyłane, nie ma analityki ani logów, które mogłyby to przechwycić — ale odpowiedź nadal zależy od twoich własnych zasad. Żywy token sesji w karcie przeglądarki pozostaje żywym tokenem sesji, cokolwiek robi z nim strona, a część organizacji zabrania wklejania danych klientów do narzędzi, których sama nie wdrożyła. Kiedy się da, użyj zanonimizowanej próbki.
Dlaczego tester regex zatrzymuje się na dwustu dopasowaniach?
Bo lista przestaje być czytelna dużo wcześniej, a wyrenderowanie tysięcy wierszy zamroziłoby kartę dokładnie z tego powodu, dla którego istnieje osobny wątek. Jeśli potrzebujesz każdego wystąpienia, potrzebujesz skryptu, a nie strony. Liczba znalezionych dopasowań jest nadal pokazywana, żebyś wiedział, że lista została ucięta.
Którą wersję UUID generuje to narzędzie?
Wersję 4, czyli losową. To dobry domyślny wybór i zły klucz główny przy dużej skali: losowe wartości rozsypują się po indeksie B-drzewa i każdy insert trafia w inną stronę. Wersja 7 umieszcza znacznik czasu w starszych bitach, więc nowe wiersze lądują obok siebie — i to po nią sięgaj, gdy identyfikatory idą do bazy, a nie do fixture'a.