JWT dekoderis
Dekoduok JWT antraštę ir turinį, perskaityk exp, iat bei nbf kaip datas ir tikrink HS256, RS256, PS256, ES256 ar EdDSA parašus savo naršyklėje.
Žetonai yra prisijungimo duomenys. Šis įrankis juos dekoduoja ir tikrina tavo naršyklėje ir niekur nesiunčia.
Antraštė
Turinys (payload)
| Laukas | Reikšmė | Data | Būsena |
|---|
- Algoritmas (alg)
- —
- Parašas (Base64url)
- —
Patikrinti parašą
HS256/384/512: įvesk bendrą slaptą raktą. RS, PS, ES (256/384/512) ir EdDSA: įklijuok viešąjį raktą kaip PEM (viešasis raktas, RSA viešasis raktas arba sertifikatas) arba JWK (JWK rinkinys parenkamas pagal kid).
Kaip dekoduoti JWT
- Įklijuok žetoną į lauką JSON Web Token. Tinka ir visa
Authorization: Bearer …eilutė: priešdėlisBearerir eilučių lūžiai pašalinami. - Žetonas dekoduojamas jam renkant (arba spustelėk Dekoduoti). Antraštė ir Turinys (payload) rodomi kaip suformatuotas JSON, kiekvienas su savo mygtuku Kopijuoti.
- Peržiūrėk lentelę Laiko laukai:
exp,nbfiriatrodomi su pradine reikšme, data tavo laiko juostoje, santykiniu laiku („po 3 valandų“, „prieš 2 dienas“) ir būsena, pavyzdžiui, Nebegalioja arba Dar negalioja. - Perskaityk įspėjimus virš rezultatų, pavyzdžiui, kai
algyranonearba kai data panaši į milisekundes. - Norint patikrinti parašą, skiltyje Patikrinti parašą įvesk raktą ir spustelėk Tikrinti parašą.
Dekoduoti nereiškia patikrinti
JWT yra trys Base64url dalys, atskirtos taškais: antraštė.turinys.parašas. Antraštė ir turinys yra tik užkoduoti, o ne užšifruoti, todėl juos gali perskaityti kiekvienas, turintis žetoną, o šis įrankis dekoduoja bet kurį žetoną be rakto. Tai taip pat reiškia, kad dekoduotas turinys nieko neįrodo: kažkas galėjo jį pakeisti. Tik tinkamas parašas parodo, kad žetoną išdavė rakto turėtojas ir kad jis nuo to laiko nebuvo keistas. Todėl būsenos eilutėje rašoma „Iššifruota (parašas netikrintas).“, kol parašo netikrini.
Žetonas iš penkių dalių yra JWE (užšifruotas JWT); jo turinio negalima perskaityti be iššifravimo rakto, ir įrankis apie tai praneša.
Parašo tikrinimas
- HS256, HS384, HS512 (HMAC): įvesk bendrą Slaptą raktą. Per Slapto rakto formatas nurodyk, ar tai paprastas tekstas (UTF-8), ar Base64/Base64url, nes kai kurie tiekėjai slaptus raktus saugo Base64 formatu. Taip pat gali įklijuoti
octtipo JWK. Jei slaptas raktas trumpesnis už maišos išvestį (HS256 atveju 32 baitai), įrankis pastebi, kad jis mažesnis už RFC 7518 minimumą. - RS256/384/512, PS256/384/512, ES256/384/512 ir EdDSA: įklijuok Viešasis raktas (PEM arba JWK). Priimami PEM blokai
PUBLIC KEY,RSA PUBLIC KEYirCERTIFICATE(raktas nuskaitomas iš X.509 sertifikato). Tinka ir JWK, ir visas JWK rinkinys: naudojamas raktas, kuriokidsutampa su antraštės reikšme. Privatieji raktai atmetami; tikrintojui jų niekada nereikia. EdDSA palaiko Ed25519 naršyklėse, kuriose tai įgyvendina Web Crypto.
Tikrinimui naudojama naršyklės Web Crypto API. Rezultatas „Netinkamas parašas“ reiškia, kad raktas blogas arba žetonas buvo pakeistas. Atkreipk dėmesį: algoritmas imamas iš žetono antraštės, o tikras serveris privalo laukiamą algoritmą nustatyti savo konfigūracijoje, kitaip jį galėtų pasirinkti užpuolikas.
Saugumo pastabos
- Žetonai yra prisijungimo duomenys. Kas turi galiojantį prieigos žetoną, paprastai gali veikti jo savininko vardu, kol žetonas nustos galioti. Šis įrankis viską dekoduoja ir tikrina tavo naršyklėje ir niekada niekur nesiunčia nei žetono, nei rakto. Vis dėlto saugokis klijuoti darbinių aplinkų žetonus į įrankius, kurių negali patikrinti.
alg: nonereiškia, kad žetonas nepasirašytas. Bet kas gali tokį suklastoti, todėl serveris turi jį atmesti. Įrankis rodo įspėjimą ir atsisako „tikrinti“ tokį žetoną.- Laiko patikros čia naudoja tavo kompiuterio laikrodį be jokio leidžiamo nuokrypio; serveriai dažnai toleruoja minutės ar dviejų laikrodžių skirtumą.
- JWT datos (NumericDate) yra sekundės nuo 1970 m. sausio 1 d. UTC. 13 skaitmenų reikšmė greičiausiai yra milisekundės, o tai dažna klaida.
Dažnai užduodami klausimai
Ar šis įrankis gali pasakyti, ar žetonas galioja?
Jis gali pasakyti, ar parašas sutampa su tavo pateiktu raktu ir ar šiuo metu tenkinamos exp bei nbf sąlygos. Ar žetonas bus priimtas, priklauso ir nuo patikrų, kurias žino tik serveris: laukiamo išdavėjo (iss), auditorijos (aud), algoritmo ir atšaukimo.
Kodėl tikrinimas nepavyksta su teisingu slaptu raktu?
Patikrink Slapto rakto formatas: Base64 slaptas raktas, įvestas kaip tekstas, duoda kitą raktą. Taip pat įsitikink, kad prie slapto rakto neprisidėjo tarpas ar eilutės lūžis, nes HMAC raktai lyginami baitas po baito.
Kuo skiriasi RS256, PS256 ir ES256?
Visi trys yra viešojo rakto parašai su SHA-256. RS256 naudoja RSA su PKCS#1 v1.5 užpildu, PS256 naudoja RSA su PSS užpildu, o ES256 naudoja ECDSA su P-256 kreive, todėl parašai gerokai trumpesni.
Kur rasti tiekėjo viešąjį raktą?
Tapatybės tiekėjai skelbia JWKS (JSON Web Key Set), dažniausiai nurodytą /.well-known/openid-configuration faile laukelyje jwks_uri. Atidaryk jį pats ir įklijuok JSON čia; įrankis parenka raktą pagal kid ir niekada nieko nesisiunčia.
Ar saugu čia klijuoti savo žetoną?
Žetonas lieka tavo įrenginyje: dekodavimas ir tikrinimas vyksta vietoje, nieko neįkeliama. Jei nori būti dar atsargesnis, o reikia tik pažiūrėti struktūrą, naudok pasibaigusį arba bandomąjį žetoną.
Susiję įrankiai
- HMAC generatorius Apskaičiuok HMAC-SHA1, SHA-256, SHA-384 ar SHA-512 su tekstiniu, hex ar Base64 raktu, gauk hex ir Base64 išvestį ir patikrink webhook parašą naršyklėje.
- Base64 kodavimas ir dekodavimas Nemokamas Base64 kodavimas ir dekodavimas su pilna UTF-8 parama ir base64url parinktimi. Veikia tavo naršyklėje, nieko neįkeliama.
- Unix laiko žymos keitiklis Konvertuok Unix laiko žymas sekundėmis ar milisekundėmis į skaitomas datas vietiniu laiku, UTC ir ISO 8601 formatu ir atgal į epoch laiką.
- JSON formatuotojas ir tikrintuvas Nemokamas JSON formatuotojas ir tikrintuvas, kuris naršyklėje sutvarko, minimizuoja ir tikrina JSON, o sintaksės klaidas nurodo su eilute ir stulpeliu.