# Конвертор на JWK

Преобразувайте ключове между PEM и JSON Web Key. Поставете частен ключ PEM във формат PKCS #8, PKCS #1 или SEC1, публичен ключ или сертификат, за да получите неговия JWK, или поставете JWK или JWKS с до 20 ключа, за да получите обратно PKCS #8 и SPKI PEM. Поддържат се ключове RSA, EC (P-256, P-384, P-521, secp256k1), Ed25519, Ed448, X25519 и X448, като всеки се показва с типа си и RFC 7638 отпечатъка си.

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

### Как конверторът разбира в коя посока да преобразува?

Входът, който започва с {, се разчита като JWK или JWKS и се преобразува в PEM. Входът, който съдържа ред -----BEGIN, се разчита като PEM и се преобразува в JWK. Всичко останало се отхвърля с подсказка за очакваните формати.

### Какви PEM входни данни се приемат?

Нешифровани частни ключове във формат PKCS #8 (BEGIN PRIVATE KEY), PKCS #1 (BEGIN RSA PRIVATE KEY) и SEC1 (BEGIN EC PRIVATE KEY), публични ключове като SPKI (BEGIN PUBLIC KEY) или PKCS #1 (BEGIN RSA PUBLIC KEY), както и сертификати X.509, от които се преобразува публичният ключ. Ако поставите няколко PEM блока, се използва първият частен ключ, а ако няма такъв — първият публичен ключ или сертификат.

### Какво получавам за частен ключ?

Частен PEM ключ генерира частния JWK с всички негови членове, като d, p, q, dp, dq и qi за RSA, както и съответстващия му публичен JWK. Споделяйте само публичния JWK, защото частният съдържа секретния материал на ключа.

### Мога ли да преобразувам цял JWKS?

Да. Поставете документ с масив keys, съдържащ до 20 ключа, например от крайна точка jwks_uri, и всеки ключ ще бъде преобразуван в PEM с индекса и kid. Частните JWK, разпознавани по члена d, връщат както частния ключ PKCS #8, така и публичния ключ SPKI.

### Защо симетричен ключ не може да бъде преобразуван?

Ключовете с kty oct са обикновени секретни байтове за HMAC или AES и нямат PEM представяне. Използвайте ги директно, например в генератора JWT, който приема oct JWK като HMAC секрет.

### Какво прави опцията kid?

Когато е включена, RFC 7638 отпечатъкът на ключа се добавя като член kid към генерирания JWK. Така ключът получава постоянен идентификатор, който проверяващите могат да съпоставят със заглавката kid на JWT.

### Какво представлява RFC 7638 отпечатъкът?

Това е base64url SHA-256 хеш върху задължителните публични членове на ключа в определен ред, например e, kty и n за RSA или crv, kty, x и y за EC. Един и същ ключ винаги има един и същ отпечатък, независимо дали е съхранен като PEM или JWK.

### Поддържат ли се шифровани ключове или ключове OpenSSH?

Не. Първо трябва да премахнете паролата от шифрованите PEM ключове, например с openssl pkey -in encrypted.pem -out key.pem. Частните ключове OpenSSH трябва да бъдат преобразувани в PEM с ssh-keygen, преди да могат да бъдат прочетени тук.

### Кои типове ключове работят?

RSA, EC с P-256, P-384, P-521 и secp256k1, както и типовете OKP Ed25519, Ed448, X25519 и X448. Ключовете DSA и Diffie-Hellman нямат JWK формат и се отхвърлят с обяснение.

### Запазва ли се частният ми ключ?

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

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

[Пишете ни](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)
