Vývojáři

Pomocníci pro vývojáře — UUID, timestampy, Base64, číselné soustavy a kódy. Vše funguje offline v prohlížeči.

Identifikátory a čas

3

Kódování

5

Barvy a text

6

Seskupené podle situace, ne podle formátu

Tahle kategorie není ani tak téma jako spíš zásuvka. Nástroje v ní jsou drobné převody, které potřebujete, zatímco skutečným úkolem je něco úplně jiného, takže jsou tu seřazené podle situace, ve které po nich sáhnete.

„V logu je nesrozumitelný řetězec a nevím, co to je.” Pokud to vypadá jako 550e8400-e29b-41d4-a716-446655440000, dekodér UUID vám řekne verzi a u v1, v6 a v7 i časovou značku, kdy vzniklo. Pokud to vypadá jako SGVsbG8= nebo to končí na ==, je to Base64 — dekódujte to. Pokud je to holé desetimístné číslo začínající na 17, je to unixová časová značka zhruba z dnešní doby.

„Potřebuju ID.” Generátor UUID zvládá verze 1 a 3 až 7 a vygeneruje jich naráz tisíce, hodí se na naplnění testovací databáze.

„Tahle časová značka je tisíckrát vedle.” Sekundy nebo milisekundy — konvertor časových značek zvládá obojí a ukáže vám, kterou z nich jste zadali.

„Potřebuju z tohohle data URI skutečný soubor.” Nebo naopak: Base64 na obrázek.

„Jakou barvu přesně to má?” Výběr barev pro převod mezi zápisy, barevná pipeta z obrázku pro odečtení hodnoty ze screenshotu nebo mockupu.

„Tohle musí být snake_case a je to camelCase.” Konvertor velikosti písmen.

„Kolik je 0xDEADBEEF v desítkové soustavě a co se stane, když je to se znaménkem?” Konvertor číselných soustav, který na rozdíl od většiny ostatních zvládá záporná čísla i dvojkový doplněk.

Identifikátory prozrazují víc, než čekáte

Jedna věc, kterou se vyplatí říct napříč celou kategorií, protože ji nevlastní žádná jednotlivá stránka nástroje: několik z těchto formátů nese informace, které jste zveřejnit nechtěli.

UUID verze 1 obsahuje časovou značku a MAC adresu stroje. To byl původní návrh — jedinečnost zaručená pravidlem „tenhle stroj, tenhle okamžik”. Znamená to taky, že UUID v1 ve veřejné URL adrese prozradí komukoli, kdo se zajímá, přesně kdy záznam vznikl, a dá mu stabilní identifikátor serveru, který ho vytvořil. Můžete si to sami ověřit vložením do dekodéru.

UUID verze 7 obsahuje unixovou časovou značku taky, záměrně, protože to, že řazení podle ID a řazení podle času vzniku je totéž, je nesmírně užitečné pro lokalitu databázového indexu. Cena je stejné prozrazení: ID verze 7 jsou seřazená, takže jejich zveřejnění odhaluje časy vzniku a umožňuje odhadnout, kolik záznamů za hodinu vytváříte, jen sledováním dvou z nich.

Verze 4 je ta, která neprozradí nic — 122 bitů náhodnosti a žádná struktura. Proto zůstává výchozí volbou pro cokoliv určeného uživatelům, a proto je „v7 pro primární klíč, v4 pro veřejný identifikátor” rozumné pravidlo pro jednu a tutéž tabulku.

Base64 prozradí všechno, okamžitě, komukoliv. Není to zakrytí. Kubernetes secret je kódovaný v Base64 proto, aby binární hodnoty přežily YAML, ne aby je chránil.

Všechno na téhle stránce běží lokálně, což u téhle kategorie záleží víc než kdekoli jinde: produkční identifikátory, tokeny a útržky logů jsou přesně to, co by se nemělo vkládat na cizí server, aby se to tam dekódovalo.

Uvítal bych, kdybyste tyto stránky sdíleli s přáteli, uložili si je do záložek nebo na ně odkazovali. Děkuji! 🙏