開發者 / OAuth
PKCE 程式碼驗證器與挑戰值產生器
產生符合RFC 7636的OAuth 2.0 PKCE程式碼驗證字串、其S256程式碼挑戰值與狀態值,或檢查您已有的驗證字串。
PKCE 程式碼驗證器與挑戰值產生器: PKCE可保護無法保管密鑰之應用程式的OAuth授權碼流程,例如手機與單頁應用程式。驗證字串是由未保留字元組成的隨機字串;本工具會使用瀏覽器的安全隨機產生器,以無偏差的方式產生。挑戰值則是驗證字串經SHA-256雜湊後,再以Base64url編碼的結果。計算方式符合RFC 7636中的計算範例。 全程在瀏覽器中於本機執行,檔案不會上傳至伺服器。
- 分類
- 開發者工具
- 使用次數
- 在瀏覽器中
- 費用
- 免費・免註冊
- 可用狀態
- 可立即使用
全程在瀏覽器中執行
code_verifier
—code_challenge (S256)
—code_challenge_method
S256state
—在授權要求中傳送code_challenge和code_challenge_method=S256,將驗證器保密留在用戶端,並在權杖要求中一併傳送。根據RFC 7636的定義,挑戰值是驗證器的Base64url SHA-256。
流程簡介
應用程式會產生並保留驗證器,將挑戰值連同登入要求傳送給授權伺服器,收到授權碼後,再將授權碼與驗證器交換為權杖。攔截授權碼的攻擊者若沒有驗證器,就無法使用該授權碼。
如要檢查收到的權杖,請使用JWT解碼器。
現在所有情況都必須使用
OAuth 2.1和目前的安全性最佳實務,都建議所有使用授權碼流程的用戶端採用PKCE,包括機密的伺服器端用戶端。
使用方式
- 選擇驗證字串長度,介於43至128個字元,然後按下「產生」。
- 將程式碼挑戰值與方法複製到授權請求中。
- 保留驗證字串以供權杖請求使用;貼上驗證字串即可查看其挑戰值。
隱私與限制
所有數值都在您的瀏覽器中產生,絕不會傳送到任何地方。
相關工具
常見問題
我應該使用plain還是S256?
只要用戶端能計算SHA-256,就一律使用S256;所有現代平台都能做到。plain只供無法計算SHA-256的用戶端使用。
狀態值是用來做什麼的?
它可防範跨網站請求偽造:將狀態值隨授權請求一併傳送,並確認回傳的值相同。
驗證字串應該多長?
至少43個字元;64個字元以上很常見。長度增加會提高隨機性,但在128個字元以內不會造成相容性問題。
免費工具・使用在瀏覽器中次・免註冊