# Генератор JWT

Създайте подписан JSON Web Token със собствени JSON твърдения. Изберете HS256, HS384 или HS512 със споделена тайна, RS256 до PS512 с частен RSA ключ, ES256 до ES512 със съответния EC ключ или EdDSA с ключ Ed25519 във формат PEM или JWK. Генераторът може да добави заглавки iat, exp и kid, подписва с библиотеката jose и показва компактния токен до декодираното заглавие и полезен товар.

## Често задавани въпроси

### Кои алгоритми за подписване мога да използвам?

Генераторът поддържа HS256, HS384 и HS512 със споделена тайна, RS256, RS384, RS512, PS256, PS384 и PS512 с частен RSA ключ, ES256, ES384 и ES512 с частен EC ключ за P-256, P-384 или P-521, както и EdDSA с частен ключ Ed25519. Избраният алгоритъм се записва в заглавката alg, а typ винаги се задава на JWT.

### Какво да въведа като полезен товар?

Въведете обект JSON с вашите твърдения, например sub, name, iss, aud или друг потребителски член. Масиви, низове и други стойности, които не са обект, се отхвърлят, защото полезният товар на JWT трябва да бъде обект JSON. Редът и стойностите на твърденията се запазват точно както сте ги въвели.

### Как се прочита тайната за HMAC?

При HS256, HS384 и HS512 тайната се използва като UTF-8 текст, след като се премахнат водещите и крайните интервали. Ако тайната ви е двоична, поставете я като JWK, например {"kty": "oct", "k": "..."}, с байтовете във формат base64url; вместо това се използват декодираните байтове. PEM ключове се отказват при HMAC алгоритми, защото използването на публичен ключ като HMAC тайна е често срещана грешка.

### Колко дълга трябва да е тайната за HS256?

RFC 7518 изисква ключът да е поне толкова дълъг, колкото изходът на хеш функцията: 32 байта за HS256, 48 за HS384 и 64 за HS512. Инструментът подписва и с по-кратки тайни, за да можете да възпроизвеждате тестови токени, но тайните за продукционна среда трябва да са дълги случайни стойности, например генерирани с генератора на пароли.

### Кои формати на частни ключове се приемат за RSA, EC и EdDSA?

Поставете нешифрован частен ключ във формат PEM PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) или SEC1 (BEGIN EC PRIVATE KEY), или частен JWK, съдържащ член d. Шифровани PEM файлове и частни ключове OpenSSH не се прочитат. Ключът трябва да съответства на алгоритъма: за ES384 е необходим ключ P-384, а RSA ключовете трябва да са поне 2048 бита.

### Как се задават iat и exp?

Когато опцията за време на издаване е включена, iat се задава на текущото време, освен ако полезният товар вече съдържа твърдение iat. Когато срокът на валидност е над 0 секунди, exp се задава на текущото време плюс този брой секунди и заменя всяка стойност exp в полезния товар. При срок 0 не се добавя exp и се запазва exp от полезния товар.

### За какво служи полето kid?

Непразен идентификатор на ключ се записва в заглавката kid, за да могат проверяващите да изберат правилния ключ от JWKS. Ако поставите JWKS като ключ за подписване, kid избира и кой ключ от набора да подпише токена. Конверторът на JWK и генераторите на ключове показват пръстовия отпечатък от RFC 7638, който е подходящ за kid.

### Какво съдържа резултатът?

Получавате компактния токен, алгоритъма, идентификатора на ключа, времето на издаване и изтичане във формат UTC, както и точното заглавие и полезен товар JSON, които са подписани. Копирайте токена от първия блок. По-късно го декодирайте с декодера JWT или го проверете с валидатора JWT.

### Съхраняват ли се тайните ми или ключовете ми?

Не. Тайната или частният ключ се изпраща само в заявката за подписване на токена, използва се веднъж в паметта и никога не се записва в лог или запазва. Въпреки това използвайте тестови ключове за експерименти и никога не поставяйте ключ за подписване от продукционна среда в уеб инструмент, освен ако не контролирате сървъра.

### Има ли ограничения за размера?

Полезният товар може да съдържа до 65,536 знака, ключът — до 65,536, а kid — до 256 знака. Срокът на валидност може да е от 0 до 315,360,000 секунди, което е десет години. По-дългите стойности се отхвърлят със съобщение, посочващо полето.

Вашата реклама тук?

[Пишете ни](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%B2%20OneClick%20Pro)

[Реклама Комплект плъгини за агенти за WordPress.](https://sleekwp.com/?ref=oneclickpro)
