JWT Generator at Verifier
Gumawa at mag-verify ng JSON Web Token gamit ang HS256, RS256, ES256 o EdDSA. I-edit ang mga claim, i-set ang exp at iat, at suriin ang signature sa browser.
Mga sikreto ang mga key at token. Lokal na sina-sign at nave-verify ang lahat gamit ang Web Crypto API ng iyong browser: walang ina-upload.
Gumawa ng naka-sign na JWT
Hindi sinusuportahan ng browser na ito ang Ed25519 sa Web Crypto, kaya hindi available ang EdDSA.
Ginagawa sa iyong browser ang mga test key at awtomatiko itong inilalagay sa ibaba. Itago sa sarili ang private key o secret; ang public key lang ang ibahagi.
I-verify ang JWT
Paano gumawa ng naka-sign na JWT
- Piliin ang Algorithm: HS256/384/512 (shared secret), RS256/384/512 o PS256/384/512 (RSA), ES256/384/512 (ECDSA sa P-256, P-384 o P-521), o EdDSA (Ed25519, kung sinusuportahan ng browser mo).
- I-edit ang Header (JSON) at ang Payload (mga JSON claim). Laging sumusunod sa napiling algorithm ang field na
alg, atJWTang default ngtyp. - Gamitin ang mga button ng time claim para magdagdag ng petsa: iat = ngayon, nbf = ngayon, o pumili ng tagal gaya ng “sa loob ng 1 oras” at i-click ang I-set ang exp. Mga NumericDate ang mga halaga: segundo mula Enero 1, 1970 UTC.
- Ilagay ang Secret (mga HS algorithm, bilang text o Base64/Base64url sa Format ng secret) o ang Private key (PEM o JWK). Wala ka pang key? I-click ang Gumawa ng test key.
- I-click ang I-sign ang token, pagkatapos ay Kopyahin ang resulta o i-click ang I-verify ang token na ito para masuri agad.
Paano mag-verify ng JWT
- I-paste ang token sa Token na ive-verify.
- Piliin ang Inaasahang algorithm. Kapag iniwan ito sa “Mula sa header ng token (hindi kailanman none)”, tatanggapin ang anumang nakasulat sa header maliban sa
none; kapag pumili ka ng partikular na algorithm, tatanggihan ng tool ang anumang token na iba ang pagkaka-sign, gaya ng ginagawa ng totoong server. - Ilagay ang secret, o ang Public key (PEM o JWK): isang
PUBLIC KEY,RSA PUBLIC KEYoCERTIFICATEna PEM block, isang JWK, o isang JWK Set (ginagamit ang key na tugma angkidsa header). - Kung gusto, mag-set ng Palugit sa orasan (segundo) para tanggapin ang maliliit na pagkakaiba ng orasan, pagkatapos ay i-click ang I-verify ang token.
Sasabihin ng resulta kung valid ang signature, at susuriin pagkatapos ang exp (expiration) at nbf (not before) batay sa kasalukuyang oras ng iyong computer. Ang token na tama ang signature pero nasa nakaraan ang expiry ay iuulat na expired, hindi valid.
Mga key at format
Sa pag-sign, tumatanggap ang tool ng mga PKCS#8 na PRIVATE KEY block, PKCS#1 na RSA PRIVATE KEY at SEC1 na EC PRIVATE KEY block (kino-convert sa PKCS#8 sa loob), at mga private JWK. Kailangan munang i-export nang walang password ang mga key na may password. Ang Gumawa ng test key ay gumagawa ng random na secret na kasinlaki ng hash para sa mga HS algorithm, 2048-bit na RSA key pair para sa RS at PS, ang katugmang curve para sa ES, o isang Ed25519 pair. Makukuha mo ang mga key bilang PEM at JWK, at inilalagay ang mga ito sa magkabilang panig kaya gumagana agad ang round trip.
Sumusunod ang mga signature sa RFC 7515 at RFC 7518: gumagamit ang RSA-PSS ng salt na kasinghaba ng hash, at ang mga ECDSA signature ay ang raw na pagdudugtong na r||s. Ginagaya ng implementasyon ang halimbawa ng HS256 sa RFC 7515, Appendix A.1.
Mga paalala sa seguridad
- Tumatakbo ang lahat sa iyong browser gamit ang Web Crypto API. Hindi ipinapadala kahit saan ang mga token at key, pero mas mainam pa ring gumamit ng test key kaysa sa production secret.
- Hindi kailanman sina-sign o tinatanggap ang
alg: none. - Dapat kahit kasinghaba ng hash ang mga HMAC secret (32 byte para sa HS256). Magbibigay ng babala ang mas maikling secret.
- Pinatutunayan ng signature ang integridad at pinagmulan, hindi na angkop ang mga claim: dapat ding suriin ng mga server ang
iss,audat ang mga scope.
Mga madalas itanong
Ano ang pagkakaiba ng HS256 at RS256?
Isang shared secret ang ginagamit ng HS256 pareho sa pag-sign at pag-verify, kaya kayang gumawa ng pekeng token ng bawat verifier. Ang RS256 (pati PS256, ES256, EdDSA) ay nagsa-sign gamit ang private key at nagve-verify gamit ang public key na ligtas ilathala.
Bakit may error pa rin kahit valid ang signature?
Dahil nasa labas ng validity period ang token: nasa nakaraan ang exp o nasa hinaharap ang nbf. Magkahiwalay na iniuulat ang pagsusuri sa signature at ang pagsusuri sa oras.
Bakit tinatanggihan ang alg na "none"?
Kahit sino ay puwedeng gumawa ng token na walang signature. Klasikong kahinaan ng mga JWT library ang pagtanggap dito, kaya tinatanggihan ito ng tool na ito pareho sa pag-sign at pag-verify.
Puwede ba akong gumamit ng sarili kong RSA o EC key?
Oo. I-paste ang private key bilang PEM o JWK para mag-sign, at ang public key para mag-verify. Sinusuri ng tool kung tugma ang uri ng key at curve sa napiling algorithm.
Bakit naka-disable ang EdDSA?
Hindi pa sinusuportahan ng browser mo ang Ed25519 sa Web Crypto. Sinusuportahan na ito ng mga bagong bersyon ng Chrome, Edge, Firefox at Safari.
Mga kaugnay na tool
- JWT Decoder I-decode ang header at payload ng JWT, basahin ang exp, iat at nbf bilang petsa, at i-verify ang HS256, RS256, ES256 o EdDSA signature sa iyong browser.
- HMAC Generator Kalkulahin ang HMAC-SHA1, SHA-256, SHA-384 o SHA-512 gamit ang text, hex o Base64 na key, kumuha ng hex at Base64 na output, at i-check ang webhook signature.
- Unix Timestamp Converter I-convert ang Unix timestamp sa segundo o millisecond tungo sa nababasang petsa sa lokal na oras, UTC at ISO 8601, at gawing epoch time ang anumang petsa.
- JSON Formatter at Validator Libreng JSON formatter at validator na nagbi-beautify, nagmi-minify at nagsusuri ng JSON sa iyong browser, may ulat ng syntax error ayon sa linya at column.