Структура и формат JSON Web Token-а
JSON Web Token (JWT) је компактни, URL-безбедни формат за пренос података између две стране. Сваки JWT се састоји од три дела који су међусобно раздвојени тачкама. Ова три дела су:
- Заглавље: Садржи метаподатке о самом житону, као што су алгоритам који се користи за потписивање и тип житона.
- Корисни терет: Садржи стварне податке или тврдње (claims) о субјекту и додатне информације.
- Потпис (Signature): Служи за верификацију интегритета података и потврду да пошиљалац јесте онај за кога се представља.
Сваки од ових делова је кодиран помоћу Base64URL алгоритма како би се омогућио безбедан пренос кроз HTTP заглавља и URL параметре.
Улога заглавља и корисничке тврдње
Заглавље JWT-а дефинише технички контекст житона. У њему се најчешће налазе две кључне тврдње:
alg: Означава криптографски алгоритам који је коришћен за креирање потписа (на пример, HS256 или RS256).typ: Означава тип житона, што је у овом случају најчешће вредност "JWT".
Корисни терет садржи тврдње које носе информације о кориснику или сесији. Ове тврдње се деле на регистроване, јавне и приватне. Међу регистрованим тврдњама које дефинишу временски оквир важења житона издвајају се:
iat(Issued At): Време када је житон издат.exp(Expiration Time): Време када житон истиче и након ког више не сме бити прихваћен.
Разлика између декодирања и верификације
Постоји суштинска разлика између декодирања и верификације JWT-а.
Декодирање је једноставан процес превођења Base64URL текстуалног записа назад у читљив JSON формат. Пошто Base64URL није шифровање, свако ко има приступ житону може лако да прочита његов садржај. Овај алат обавља искључиво декодирање и приказује заглавље и корисни терет у читљивом облику.
Верификација је процес којим се потврђује да житон није измењен након што је издат. Да би се потпис верификовао, неопходно је поседовати тајни кључ (за симетрично потписивање) или јавни кључ (за асиметрично потписивање). Овај алат не верификује потпис житона и не тражи од Вас унос тајног кључа или јавног кључа. То значи да декодирање житона не гарантује његову аутентичност, већ само приказује податке који су у њему записани.
Како ради JWT декодер
Када унесете житон у поље за унос, алат аутоматски анализира структуру и приказује следеће излазне податке:
- Заглавље: Декодирано заглавље приказано као форматирани JSON.
- Корисни терет: Декодирани корисни терет приказано као форматирани JSON.
- Алгоритам: Вредност из
algпоља у заглављу. - Тип: Вредност из
typпоља у заглављу. - Издат у: Време издавања извучено из
iatтврдње. - Истиче: Време истека извучено из
expтврдње. - Статус: Значка која показује тренутно стање важења житона на основу времена истека.
- Знакови: Укупан број карактера у унетом JWT-у.
Алат прати строга правила приликом обраде уноса:
- Ако је поље за унос празно, алат је у стању "Спремно. Налепите JWT да бисте га декодирали.".
- Ако унос нема тачно три дела раздвојена тачкама, приказује се грешка "Није важећи JWT — очекују се три дела раздвојена тачкама".
- Ако Base64URL структура заглавља није исправна, исписује се "Није могуће декодирати заглавље — неважећи Base64URL".
- Ако Base64URL структура корисног терета није исправна, исписује се "Није могуће декодирати корисни терет — неважећи Base64URL".
- Ако декодирани садржај заглавља није валидан JSON, појављује се порука "Заглавље није важећи JSON".
- Ако декодирани садржај корисног терета није валидан JSON, појављује се порука "Корисни терет није важећи JSON".
- Ако је унос превише дугачак, алат приказује грешку "Ово је превише дугачко да би био стварни JWT".
- Када се унесе неважећи житон, сви декодирани сегменти се скривају.
- Када кликнете на дугме "Обриши", фокус се аутоматски враћа на поље за унос.
Приватност и сигурност података
Ваш житон се декодира у Вашем прегледачу. Ништа се не отпрема на BroBroGo. Сви прорачуни и декодирање Base64URL формата извршавају се локално на Вашем уређају, што значи да осетљиви подаци из житона не напуштају Ваш веб прегледач.
Често постављана питања (FAQ)
Да ли је безбедно да овде налепим свој JWT?
Да. Декодирање се одвија у потпуности у Вашем прегледачу — Ваш житон се никада не шаље на BroBroGo.
Да ли овај алат верификује потпис?
Не. Алат само декодира заглавље и корисни терет (payload) како бисте могли да их прочитате. За верификацију потписа потребан је тајни кључ или јавни кључ, које овај алат никада не тражи.
Како да знам да ли је мој житон истекао?
Декодер чита exp тврдњу (claim) и приказује статусну значку — важећи, истекао, још увек неважећи или без истека — поред декодираног житона. Ако житон уопште нема exp тврдњу, алат ће приказати статус "Нема рок важења".