Text a kód / Návody

Kódování, hashování a šifrování: co potřebujete?

Stejný text lze zapsat jako HTML entity, připravit pro URL, převést na Base64 nebo shrnout hashem. Každý postup řeší jiný problém.

Začněte cílovým prostředím

Před výběrem nástroje si ujasněte, kam se hodnota dostane. HTML entity pomáhají zapsat znaky, například ampersand, v HTML textu. Procentové kódování připraví hodnotu pro komponentu URL, ve které mezery a vyhrazené znaky potřebují jednoznačný zápis. Base64 vyjádří libovolné bajty omezenou abecedou; hodí se tam, kde textový systém přenáší binární data. Hash SHA-256 je otisk pevné délky pro porovnání dat, nikoli způsob obnovení původního vstupu. Ani jeden z těchto čtyř postupů není šifrování. Mají-li data zůstat tajná, použijte vhodné autentizované šifrování místo maskování pomocí Base64 nebo hashe.

Jeden vstup, čtyři výstupy

Vezměme text A&B. V běžném HTML textu lze ampersand zapsat jako A&B a prohlížeč opět zobrazí A&B. V komponentě URL dostaneme A%26B, protože nezakódovaný ampersand může oddělovat parametry. V UTF-8 odpovídají tři viditelné znaky hexadecimálním bajtům 41 26 42 a standardní Base64 je zapíše jako QSZC. Nástroj SHA-256 naproti tomu vrátí dlouhý hexadecimální otisk; malá změna vstupu obvykle vytvoří výrazně jiný otisk. Výstupy nejsou zaměnitelné: Base64 může obsahovat znaky vyhrazené v URL a z hashe původní text nezrekonstruujete.

Čtyři cesty z jednoho vstupu; pouze tři umožňují obnovit originál.
  1. A&B — původní text
  2. HTML: A&B · URL: A%26B
  3. Base64: QSZC · SHA-256: hash

Vratnost a bezpečnost

HTML entity, procentové kódování a Base64 jsou vratné, znáte-li kontext a kódování vstupu. Proto nezajišťují utajení: Base64 může bez klíče dekódovat kdokoli. SHA-256 je jednosměrná funkce, ale samotný SHA-256 pro předvídatelné heslo nepředstavuje bezpečné ukládání hesel; k tomu slouží specializované postupy se solí. Samotný hash bez autentizovaného protokolu také nedokazuje, kdo data dodal. Na webu závisí escapování na kontextu: HTML text, atribut, URL a zdrojový kód JavaScriptu mají odlišná pravidla. Řetězec připravený pro jeden kontext může být v jiném nebezpečný.

Praktický postup převodu

Nejprve určete původní text a formát očekávaný příjemcem. Při tvorbě HTML textu zapište potřebné znaky jako entity; ve skutečné aplikaci svěřte práci se značkami ověřenému šablonovacímu systému. Vkládáte-li hodnotu do jednoho parametru URL, zakódujte tuto komponentu právě jednou a teprve poté ji připojte k parametru. Požaduje-li rozhraní Base64, nejprve převeďte text na bajty dohodnutým kódováním, obvykle UTF-8. Při porovnávání dvou posloupností bajtů vypočítejte hash obou stejným algoritmem. Původní bajty si ponechte, budete-li chtít zprávu později znovu zobrazit.

Ověřte zpětný převod

U vratného postupu vyzkoušejte odpovídající dekodér. Pozor na dvojité kódování: po dalším zakódování A%26B vznikne %25 a jedno dekódování odstraní pouze jednu vrstvu. Ověřte, zda příjemce Base64 očekává standardní abecedu, variantu vhodnou pro URL nebo doplňovací znaky. Při hashování rozhodují přesné bajty včetně konců řádků a mezer na konci; vizuálně podobný text může mít jiný otisk. Vložený převodník Base64 níže dovoluje vyzkoušet vratný případ. Pro další cesty použijte odkazy na nástroje HTML, URL a SHA-256 a zvolte výstup podle skutečného cíle. Připravujete-li odkaz, zakódujte pouze hodnotu jednoho parametru, nikoli celou adresu včetně oddělovačů. U HTML se zvlášť zeptejte, zda hodnota patří do textu, nebo atributu; tato místa mají různá pravidla. Zkoušku doplňte vstupem s diakritikou: Base64 nejprve kóduje bajty UTF-8, takže výsledek nelze odvozovat jen z počtu písmen. Vrací-li server jiný výsledek, zkontrolujte dohodnuté kódování znaků a neviditelné znaky na konci vstupu. Při sdílení úryvku ověřte, že zveřejňujete jen data, která mohou být veřejná; kódování je neskryje. Při porovnávání hashů si poznamenejte také název algoritmu a přesný formát vstupu; jinak můžete správně vypočtené otisky mylně považovat za neshodu. Vysvětlete příjemci, zda text zahrnuje koncový znak nového řádku.

Vyzkoušet převodník

Vyzkoušejte převod textu na Base64 a dekódováním ověřte zpětnou cestu.

Zakódujte text jako Base64 nebo Base64URL s výběrem znakové sady a výplně.

Otevřít celý převodník

Další návody

Návody ke konverzím

Prohlédnout návody