🔑

PKCE Verifier — Generate Code Challenge and Validate OAuth 2.0 S256 Keys

Validate a PKCE code_verifier against RFC 7636, compute the SHA-256 code_challenge with Base64URL encoding, and verify it matches an expected value. Includes a random verifier generator and the RFC 7636 official test vector.

Security ToolsPrivacy & Security
Loading tool...

How to Use PKCE Verifier — Generate Code Challenge and Validate OAuth 2.0 S256 Keys

How to Use the PKCE Challenge Verifier:

Paste a code_verifier: Enter your existing code_verifier in the textarea. The verifier must be 43–128 characters and use only URL-safe characters: A–Z, a–z, 0–9, hyphen (-), period (.), underscore (_), and tilde (~). The validation panel shows length, charset, and overall RFC 7636 compliance in real-time.

Generate a random verifier: Click "Generate Random" to create a cryptographically random 64-character code_verifier using the browser's crypto.getRandomValues API. This is equivalent to what your OAuth client library generates.

Compute the challenge: The tool automatically computes the S256 code_challenge (BASE64URL(SHA256(code_verifier))) as soon as a verifier is entered. The computation runs in the browser using the Web Crypto API — no server call is needed.

Verify against an expected challenge: Paste your expected code_challenge in the second field to compare. The tool shows:

  • S256 MATCH / MISMATCH: whether your expected challenge matches the SHA-256 transform
  • PLAIN match: whether the expected value equals the verifier itself (the deprecated "plain" method)

Use the test vectors: Click "RFC 7636 Test Vector" to load the official code_verifier and code_challenge from RFC 7636 Appendix B. This is useful to verify the tool's implementation is correct before using it to debug your own PKCE flow.

Common Debugging Scenarios:

  • Server rejects token exchange: paste the verifier from the token request and compare to the challenge from the authorization request
  • Challenge mismatch: check that no URL encoding or whitespace was added to the verifier between the two requests
  • Invalid verifier: look for characters outside the allowed set — especially + and / from standard Base64 (should use - and _ instead)

Frequently Asked Questions

Most Viewed Tools

📺

Screen Size Converter — Diagonal Dimension Tool

3,556 views

Calculate screen width and height from diagonal size and aspect ratio. Convert between inches and centimeters for displays, TVs, and monitors with instant dimension calculations.

Use Tool →
🔐

TOTP Code Generator — 2FA Testing Tool

3,367 views

Generate time-based one-time passwords from a TOTP secret key. Enter your base32 secret, choose a period and digit length, and get the current and next codes with a live countdown timer. Useful for testing and debugging 2FA integrations.

Use Tool →
{ }

JSON to Zod — Schema Generator

3,296 views

Generate Zod validation schema code from a JSON sample object. Infers z.string(), z.number(), z.boolean(), z.array(), z.object(), and z.null() types automatically. Handles nested objects, arrays of objects with optional field detection, and outputs copy-ready TypeScript with import and z.infer type alias.

Use Tool →
{}

JSONL Formatter — Line-by-Line Validator

3,236 views

Format, validate, and inspect JSON Lines (JSONL) and NDJSON files. Validates each line individually, reports parse errors by line number, outputs compact JSONL or a pretty-print preview, and lets you download the cleaned file.

Use Tool →
🔑

Password Entropy Calculator — Crack Time Estimator

3,011 views

Calculate the information-theoretic bit entropy of any password or API key. Detects character set pools automatically, shows the total number of possible combinations, and estimates crack time across five attack scenarios from rate-limited web logins to GPU cracking clusters.

Use Tool →
🔐

TLS Cipher Suite Checker — Strength Analyzer

3,007 views

Check TLS protocol version compatibility and cipher suite strength ratings against current best practices. Supports IANA and OpenSSL cipher names — rates each suite as Strong, Weak, or Deprecated and explains why.

Use Tool →
🔍

Secret Scanner — API Key & Credential Detector

2,840 views

Scan pasted text, code, or config files for accidentally exposed API keys, tokens, passwords, and private keys. Detects 50+ secret types across AWS, GitHub, Stripe, OpenAI, and more — all client-side, nothing leaves your browser.

Use Tool →

TOML Config Validator — Syntax Error Finder

2,634 views

Validate TOML configuration file syntax and report errors with line numbers. Paste any TOML content — Cargo.toml, pyproject.toml, config.toml — and instantly see a green checkmark with key counts and structure stats, or a precise error message pointing to the exact line. Includes a collapsible JSON structure preview to confirm what was parsed.

Use Tool →

Related Privacy & Security Tools

🔐

API Key Hasher — Secure Storage Tool

Hash API keys using SHA-256, SHA-512, or PBKDF2 before storing them in your database. Generates a Node.js verification snippet and shows the recommended storage format — all 100% client-side using the Web Crypto API.

Use Tool →
🛡️

PGP Key Generator — Browser-Based Key Pair Tool

Generate PGP public and private key pairs for email encryption and code signing. Supports ECC (Curve25519) and RSA up to 4096-bit. Entirely browser-side — keys never leave your device.

Use Tool →
🔐

TOTP Code Generator — 2FA Testing Tool

Generate time-based one-time passwords from a TOTP secret key. Enter your base32 secret, choose a period and digit length, and get the current and next codes with a live countdown timer. Useful for testing and debugging 2FA integrations.

Use Tool →
🔑

OAuth 2.0 Scope Builder — Permission String Tool

Build and decode OAuth 2.0 scope strings for Google, GitHub, Stripe, and custom providers. Toggle permissions with risk indicators, generate ready-to-use scope strings, and decode existing scope strings to understand what access they grant.

Use Tool →
🔐

TLS Cipher Suite Checker — Strength Analyzer

Check TLS protocol version compatibility and cipher suite strength ratings against current best practices. Supports IANA and OpenSSL cipher names — rates each suite as Strong, Weak, or Deprecated and explains why.

Use Tool →
🔐

IP Allowlist Generator — Firewall Rule Builder

Generate ready-to-paste IP allowlist and blocklist rules for nginx, Apache, iptables, UFW, and AWS Security Groups. Enter IP addresses or CIDR ranges, select your target platform, and get production-ready firewall config instantly.

Use Tool →
🔑

Password Entropy Calculator — Crack Time Estimator

Calculate the information-theoretic bit entropy of any password or API key. Detects character set pools automatically, shows the total number of possible combinations, and estimates crack time across five attack scenarios from rate-limited web logins to GPU cracking clusters.

Use Tool →
🔒

Content Security Policy Generator — XSS Shield Builder

Build Content Security Policy headers interactively. Toggle directives like script-src, style-src, and img-src, select allowed source tokens, and add custom origins. Instantly outputs your CSP as an HTTP header, meta tag, Nginx directive, or Apache header.

Use Tool →

Share Your Feedback

Help us improve this tool by sharing your experience

We will only use this to follow up on your feedback