開發者 / OAuth

PKCE 程式碼驗證器與挑戰值產生器

產生符合RFC 7636的OAuth 2.0 PKCE程式碼驗證字串、其S256程式碼挑戰值與狀態值,或檢查您已有的驗證字串。

PKCE 程式碼驗證器與挑戰值產生器: PKCE可保護無法保管密鑰之應用程式的OAuth授權碼流程,例如手機與單頁應用程式。驗證字串是由未保留字元組成的隨機字串;本工具會使用瀏覽器的安全隨機產生器,以無偏差的方式產生。挑戰值則是驗證字串經SHA-256雜湊後,再以Base64url編碼的結果。計算方式符合RFC 7636中的計算範例。 全程在瀏覽器中於本機執行,檔案不會上傳至伺服器。

使用次數
在瀏覽器中
費用
免費・免註冊
可用狀態
可立即使用
PKCE程式碼驗證器與挑戰值產生器本機處理

全程在瀏覽器中執行

code_verifier—
code_challenge (S256)—
code_challenge_methodS256
state—

在授權要求中傳送code_challenge和code_challenge_method=S256,將驗證器保密留在用戶端,並在權杖要求中一併傳送。根據RFC 7636的定義,挑戰值是驗證器的Base64url SHA-256。

流程簡介

應用程式會產生並保留驗證器,將挑戰值連同登入要求傳送給授權伺服器,收到授權碼後,再將授權碼與驗證器交換為權杖。攔截授權碼的攻擊者若沒有驗證器,就無法使用該授權碼。

如要檢查收到的權杖,請使用JWT解碼器。

現在所有情況都必須使用

OAuth 2.1和目前的安全性最佳實務,都建議所有使用授權碼流程的用戶端採用PKCE,包括機密的伺服器端用戶端。

使用方式

  1. 選擇驗證字串長度,介於43至128個字元,然後按下「產生」。
  2. 將程式碼挑戰值與方法複製到授權請求中。
  3. 保留驗證字串以供權杖請求使用;貼上驗證字串即可查看其挑戰值。

隱私與限制

所有數值都在您的瀏覽器中產生,絕不會傳送到任何地方。

相關工具

常見問題

我應該使用plain還是S256?

只要用戶端能計算SHA-256,就一律使用S256;所有現代平台都能做到。plain只供無法計算SHA-256的用戶端使用。

狀態值是用來做什麼的?

它可防範跨網站請求偽造:將狀態值隨授權請求一併傳送,並確認回傳的值相同。

驗證字串應該多長?

至少43個字元;64個字元以上很常見。長度增加會提高隨機性,但在128個字元以內不會造成相容性問題。

免費工具・使用在瀏覽器中次・免註冊