Перейти до вмісту

Генератор PKCE верифікатора і challenge

Створіть криптографічно стійкий code_verifier та його code_challenge для OAuth 2.0 PKCE.

43
Вихід

Генератор PKCE верифікатора і challenge

Цей інструмент генерує PKCE code_verifier та його відповідний code_challenge для потоку Authorization Code в OAuth 2.0, дотримуючись RFC 7636. Він розроблений для розробників, які інтегрують односторінкові програми, мобільні програми або будь-якого публічного клієнта, який не може безпечно зберігати клієнтський секрет і потребує Proof Key for Code Exchange для захисту коду авторизації від перехоплення.

code_verifier — це криптографічно стійкий рядок, побудований виключно з нерезервованих символів RFC 3986 (A–Z, a–z, 0–9, "-", ".", "_", "~"), довжиною від 43 до 128 символів — виберіть точну довжину за допомогою повзунка. Метод challenge визначає, як отримується code_challenge: S256 хешує верифікатор за допомогою SHA-256 та кодує дайджест у base64url, що очікують всі сучасні посібники OAuth та сервери авторизації. Метод plain просто копіює верифікатор в challenge без змін; він існує в специфікації для обмежених клієнтів, які не можуть обчислити SHA-256, не забезпечує захисту від перехоплення, і цей інструмент це відзначає відповідно.

Вихідні дані включають raw code_verifier та code_challenge, вибраний метод та готовий рядок запиту — code_challenge=...&code_challenge_method=... — який ви можете безпосередньо вставити в URL запиту авторизації. Пам'ятайте верифікатор окремо: він належить до пізнішого запиту токена, а не до запиту авторизації, і для кожної спроби входу повинна створюватися нова пара замість повторного використання.

Уся генерація відбувається локально у вашому браузері з використанням криптографічно стійкого джерела випадковості Web Crypto API та реалізації SHA-256 — нічого не завантажується та не реєструється. Натисніть «Створити нову пару», щоб отримати новий верифікатор та challenge, скопіюйте вихідні дані або завантажте їх як текстовий файл.

FAQ

Що таке PKCE і навіщо він мені потрібен?
PKCE (Proof Key for Code Exchange, RFC 7636) захищає потік Authorization Code в OAuth 2.0 для клієнтів, які не можуть зберігати секрет, таких як односторінкові програми та мобільні програми. Він пов'язує запит авторизації з запитом токена за допомогою випадкового секрету, щоб украдений код авторизації не міг бути обміняний кимось іншим.
Я повинен вибрати S256 або plain?
Використовуйте S256, якщо ваш клієнт не може обчислити SHA-256. З plain код code_challenge дорівнює code_verifier, тому зловмисник, який перехопив запит авторизації, вже має все необхідне для обміну коду — S256 — це те, що очікують сучасні сервери авторизації і часто єдиний метод, який вони приймають.
Чи можу я використовувати один і той же верифікатор та challenge для кількох входів?
Ні. Генеруйте нову пару для кожної спроби авторизації. Верифікатор призначений для використання один раз, прив'язаний до одного потоку, а не фіксоване значення, яке кодує ваша програма.
Де йдуть code_verifier та code_challenge?
code_challenge та code_challenge_method йдуть в URL початкового запиту авторизації. code_verifier відправляється пізніше, в запиту токена, який обмінює код авторизації на токени — тримайте його в пам'яті або сховищі сеансу клієнта до того часу.
Чи завантажується створений верифікатор кудись?
Ні. Генерація повністю виконується у вашому браузері за допомогою Web Crypto API. Нічого не відправляється на сервер, не реєструється та не зберігається поза вашим сеансом.