Articol
Codifică și decodifică date în mod privat
În fiecare zi, dezvoltatorii lipesc token-uri, payload-uri și credențiale în pagini de codificare și decodificare. Cele mai comode rulează pe un server, ceea ce înseamnă că datele tale părăsesc dispozitivul pentru o sarcină care nu a cerut niciodată asta. Aceste patru instrumente rulează în întregime în browser, deci datele rămân la tine.
Base64: pare amestecat, dar nu este secret
Base64 este o codificare, nu o criptare. Transformă datele binare în text capabil să supraviețuiască unui copiere și lipire sau trecerii prin sisteme care gestionează doar caractere simple. Oricine vede șirul Base64 îl poate decodifica înapoi la original într-un singur pas, așa că un șir care conține o cheie API, un certificat privat sau corpul unui e-mail este complet lizibil pentru cine îl deține. Riscul este că acea valoare se ascunde adesea în fișiere de configurare, data URL-uri sau anteturi de autentificare și pare obscură, ceea ce te tentează să o lipești în primul decodor găsit online. Acel decodor primește secretul brut. Un instrument care decodifică Base64 local îți arată octeții originali fără ca valoarea să ajungă vreodată la un server.

Codificarea URL: șirurile de interogare poartă mai mult decât crezi
Codificarea procentuală îți permite să pui spații, diacritice și caractere rezervate într-un URL în siguranță. Textul pe care îl codifici sau decodifici este adesea un șir de interogare real dintr-o aplicație, iar acestea poartă identificatori de sesiune, termeni de căutare, adrese de e-mail, ținte de redirecționare și uneori parametri semnați. Lipirea unui URL complet într-un codor la distanță predă tot acest lucru unei terțe părți dintr-o dată, iar șirurile de interogare sunt exact genul de valoare care ajunge în jurnalele serverului. A codifica și a decodifica în browser înseamnă că URL-ul este procesat în memorie pe propriul tău dispozitiv și nu este transmis niciodată cât timp lucrezi la el.
JWT: payload-ul este semnat, nu ascuns
Un JSON Web Token are trei secțiuni Base64url unite prin puncte: un antet, un payload și o semnătură. Semnătura dovedește că token-ul nu a fost modificat, dar nu face nimic pentru a ascunde payload-ul, care se decodifică în JSON lizibil ce conține identificatori de utilizator, roluri, timpi de expirare și orice revendicări personalizate adăugate de emitent. Un token valid este totodată o credențială vie: până la expirare, oricine îl deține poate acționa în numele utilizatorului. Lipirea unui token funcțional într-un decodor online trimite o credențială activă către un server pe care nu îl controlezi. Un decodor care analizează token-ul în browserul tău dezvăluie același antet și payload fără ca acel token să părăsească vreodată pagina.

Hashing: intrarea contează mai mult decât rezumatul
O funcție de hash transformă orice intrare într-un rezumat de lungime fixă și nu poți inversa rezumatul înapoi la intrare. Această proprietate face hashing-ul util pentru a verifica integritatea unui fișier sau a compara valori fără a stoca originalul. Capcana este pe partea de intrare: pentru a calcula hash-ul unei parole, al unui document sau al unui secret de configurare, trebuie să dai instrumentului valoarea reală. Dacă acel instrument rulează pe un server, intrarea sensibilă călătorește acolo deși este returnat doar rezumatul inofensiv. Calcularea hash-ului local păstrează intrarea pe dispozitivul tău, așa că obții rezumatul de care ai nevoie fără a expune lucrul pe care îl hash-uiai.
Codificarea Base64: maparea octeților și padding-ul
Base64 traduce octeți pe 8 biți în caractere pe 6 biți prin gruparea a trei octeți de intrare (24 de biți) în patru valori pe 6 biți. Fiecare valoare pe 6 biți se mapează la un caracter din alfabetul Base64 (A-Z, a-z, 0-9, +, /). Deoarece procesul necesită intrări divizibile cu 24 de biți, intrările scurte sunt completate cu padding: un octet rămas produce două caractere de padding (==), doi octeți rămași produc unul (=). Varianta Base64url, folosită în JSON Web Token-uri (JWT-uri), înlocuiește + cu - și / cu _ pentru a face șirul sigur pentru URL, și elimină complet padding-ul =, deoarece caracterele de padding pot cauza erori în parsere URI stricte. Recunoașterea acestei distincții este importantă la depanarea gestionării token-urilor: un JWT care pare malformat poate fi pur și simplu codificat Base64url în loc de Base64 standard.
Semnăturile JWT: HS256, RS256 și confuzia de algoritm
Securitatea unui JSON Web Token depinde în totalitate de semnătura sa, al treilea segment separat prin puncte. Cu HS256 (HMAC-SHA256), serverul semnează antetul și payload-ul codificate Base64url folosind o cheie secretă. Funcția de hash SHA-256 oferă rezistență la coliziuni: este imposibil din punct de vedere computațional să produci un payload modificat care să producă același hash ca semnătura fără a cunoaște cheia secretă. Cu RS256, serverul semnează folosind o cheie privată RSA și verifică cu o cheie publică. O vulnerabilitate cunoscută numită confuzie de algoritm apare atunci când o bibliotecă server nu impune strict tipul de algoritm așteptat. Un atacator poate modifica câmpul alg din antetul token-ului din RS256 în HS256 și semna token-ul folosind cheia publică a serverului ca secret HMAC, deoarece cheile publice sunt adesea accesibile. Decodarea locală a antetului JWT în browser îți permite să verifici care algoritm este de fapt specificat, fără a expune token-ul activ sistemelor de logare ale terților.
Instrumente din acest articol
- Codificator / Decodificator Base64Codifică sau decodifică Base64, text și fișiere. Fără upload, 100% local.
- Codificator / Decodificator URLCodifică sau decodifică șiruri URL în procente. Fără upload, 100% local.
- Decodificator JWTDecodifică un JWT (antet, payload, expirare) fără a-l trimite nicăieri. Fără verificarea semnăturii.
- Generator de hashGenerează hash-uri MD5, SHA-1, SHA-256, SHA-512 din text sau fișiere. Fără upload.
Întrebări frecvente
Sunt Base64 sau codificarea URL o formă de securitate?
Nu. Ambele sunt codificări reversibile concepute pentru transportul sigur al datelor, nu pentru a le proteja. Oricine poate citi șirul codificat îl decodifică instantaneu, fără cheie sau parolă. Dacă trebuie să păstrezi o valoare confidențială, criptează-o cu un algoritm potrivit și gestionează cheia separat. Tratează orice valoare în Base64 sau codificată procentual ca și cum ar fi scrisă în text simplu.
De ce contează unde decodific un token sau calculez hash-ul unei parole?
Pentru că intrarea este partea sensibilă. Un JWT valid este o credențială vie, iar parola al cărei hash îl calculezi este secretul real. Un instrument bazat pe server primește acea intrare brută încă înainte de a returna un rezultat, ceea ce înseamnă că o copie poate fi jurnalizată sau păstrată într-un loc pe care nu îl vezi. Un instrument care rulează în browserul tău efectuează aceeași operație în memorie pe propriul tău dispozitiv, așa că token-ul sau parola nu sunt trimise niciodată nicăieri.