JWT генератор и проверувач
Создавајте и проверувајте JSON Web Token со HS256, RS256, PS256, ES256 или EdDSA. Уредувајте тврдења, поставете exp и iat и проверете потписи во прелистувачот.
Клучевите и токените се тајни. Сè се потпишува и проверува локално со Web Crypto API на вашиот прелистувач: ништо не се качува.
Создавање потпишан JWT
Овој прелистувач не го поддржува Ed25519 во Web Crypto, па EdDSA не е достапен.
Тест клучевите се генерираат во вашиот прелистувач и се пополнуваат подолу. Приватниот клуч или тајната чувајте ги за себе; споделувајте само јавниот клуч.
Проверка на JWT
Како да создадете потпишан JWT
- Изберете Алгоритам: HS256/384/512 (заедничка тајна), RS256/384/512 или PS256/384/512 (RSA), ES256/384/512 (ECDSA на P-256, P-384 или P-521) или EdDSA (Ed25519, кога вашиот прелистувач го поддржува).
- Уредете го Заглавие (JSON) и Содржина (JSON тврдења). Полето
algсекогаш го следи избраниот алгоритам, аtypпо основно еJWT. - Користете ги копчињата за временски тврдења за да додадете датуми: iat = сега, nbf = сега, или изберете рок како „за 1 час“ и кликнете Постави exp. Вредностите се NumericDate: секунди од 1 јануари 1970 UTC.
- Внесете ја Тајна (HS алгоритми, како текст или Base64/Base64url во Формат на тајната) или Приватен клуч (PEM или JWK). Немате клуч? Кликнете Генерирај тест клуч.
- Кликнете Потпиши токен, па Копирај го резултатот или кликнете Провери го овој токен за веднаш да го проверите.
Како да проверите JWT
- Залепете го токенот во Токен за проверка.
- Изберете Очекуван алгоритам. Ако остане „Од заглавието на токенот“, се прифаќа што и да каже заглавието, освен
none; ако изберете одреден алгоритам, алатката одбива секој токен потпишан поинаку, како што треба да прави вистински сервер. - Внесете ја тајната или Јавен клуч (PEM или JWK): PEM блок
PUBLIC KEY,RSA PUBLIC KEYилиCERTIFICATE, JWK или JWK Set (се користи клучот чијkidодговара на заглавието). - По желба поставете Толеранција на часовникот (секунди) за мали разлики во часовниците, па кликнете Провери токен.
Резултатот вели дали потписот е важечки, а потоа ги проверува exp (истекување) и nbf (не важи пред) според моменталното време на вашиот компјутер. Токен со точен потпис, но со истекување во минатото, се пријавува како истечен, а не како важечки.
Клучеви и формати
За потпишување алатката прифаќа PKCS#8 блокови PRIVATE KEY, PKCS#1 RSA PRIVATE KEY и SEC1 EC PRIVATE KEY (внатрешно претворени во PKCS#8), како и приватни JWK. Клучевите заштитени со лозинка прво мора да се извезат без лозинка. Генерирај тест клуч создава случајна тајна со големина на хашот за HS алгоритмите, 2048-битен RSA пар за RS и PS, соодветна крива за ES или Ed25519 пар. Клучевите ги добивате како PEM и JWK и се пополнуваат на двете страни, па целосниот круг работи веднаш.
Потписите го следат RFC 7515 и RFC 7518: RSA-PSS користи сол долга колку хашот, а ECDSA потписите се суров спој r||s. Имплементацијата го репродуцира примерот за HS256 од RFC 7515, Додаток A.1.
Безбедносни напомени
- Сè работи во вашиот прелистувач со Web Crypto API. Ниту токените, ниту клучевите не се испраќаат никаде, но сепак претпочитајте тест клучеви пред продукциски тајни.
alg: noneникогаш не се потпишува и никогаш не се прифаќа.- HMAC тајните треба да бидат барем долги колку хашот (32 бајти за HS256). Покуса тајна предизвикува предупредување.
- Потписот докажува интегритет и потекло, а не дека тврдењата се соодветни: серверите мора да проверат и
iss,audи опсезите (scopes).
Често поставувани прашања
Која е разликата меѓу HS256 и RS256?
HS256 користи една заедничка тајна и за потпишување и за проверка, па секој проверувач може и да фалсификува токени. RS256 (како и PS256, ES256, EdDSA) потпишува со приватен клуч, а проверува со јавен клуч што безбедно може да се објави.
Зошто важечки потпис сепак покажува грешка?
Затоа што токенот е надвор од својот период на важност: exp е во минатото или nbf е во иднина. Проверката на потписот и проверката на времето се пријавуваат одделно.
Зошто alg „none“ се одбива?
Непотпишан токен може да создаде секој. Прифаќањето на таков токен било класична ранливост на JWT библиотеките, па оваа алатка го одбива и при потпишување и при проверка.
Можам ли да го користам мојот RSA или EC клуч?
Да. Залепете го приватниот клуч како PEM или JWK за потпишување, а јавниот за проверка. Алатката проверува дали типот на клучот и кривата одговараат на избраниот алгоритам.
Зошто EdDSA е оневозможен?
Вашиот прелистувач сè уште не го поддржува Ed25519 во Web Crypto. Неодамнешните верзии на Chrome, Edge, Firefox и Safari го поддржуваат.
Поврзани алатки
- JWT декодер Декодирајте го заглавието и содржината на JWT, прочитајте exp, iat и nbf како датуми и проверете HS256, RS256, PS256, ES256 или EdDSA потпис локално.
- HMAC генератор Пресметајте HMAC-SHA1, SHA-256, SHA-384 или SHA-512 со клуч како текст, hex или Base64, добијте hex и Base64 излез и проверете потпис на webhook.
- Претворач на Unix временска ознака Претворете Unix временски ознаки во секунди или милисекунди во читливи датуми во локално време, UTC и ISO 8601, а секој датум вратете го во epoch време.
- JSON форматер и валидатор Бесплатен JSON форматер и валидатор што улепшува, минифицира и проверува JSON во прелистувачот, со синтаксни грешки пријавени по ред и колона.