jwt-hack 2.6.0

Hack the JWT (JSON Web Token) - A tool for JWT security testing and token manipulation
Documentation
{% extends "base.html" %}

{% block title %}{{ site.title }} - A JWT Security Testing Toolkit{% endblock %}

{% block body %}
<main style="padding-top: var(--header-h);">
  <!-- Hero -->
  <section class="landing-hero">
    <div class="hero-inner">
      <div class="hero-meta">
        <span class="meta-dot"></span>
        <span>cryptography · security · toolkit</span>
        <span class="meta-sep">·</span>
        <span class="meta-badge">{{ page.extra.hero_badge }}</span>
      </div>

      <h1>
        <span class="seg-h">jwt</span><span class="dot">-</span><span class="highlight">hack</span>
      </h1>

      <p class="hero-desc">{{ page.extra.hero_description }}</p>

      <div class="hero-buttons">
        <a href="/get_started/installation/" class="btn btn-primary">
          Get Started
          <svg aria-hidden="true" focusable="false" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
        </a>
        <a href="https://github.com/hahwul/jwt-hack" class="btn btn-secondary" target="_blank" rel="noopener">
          <svg aria-hidden="true" focusable="false" width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .5C5.65.5.5 5.65.5 12c0 5.08 3.29 9.39 7.86 10.91.58.1.79-.25.79-.56 0-.27-.01-1.18-.02-2.13-3.2.7-3.87-1.36-3.87-1.36-.52-1.33-1.27-1.68-1.27-1.68-1.04-.71.08-.69.08-.69 1.15.08 1.76 1.18 1.76 1.18 1.02 1.75 2.68 1.25 3.34.96.1-.74.4-1.25.72-1.54-2.55-.29-5.24-1.28-5.24-5.69 0-1.26.45-2.28 1.18-3.09-.12-.29-.51-1.46.11-3.04 0 0 .97-.31 3.18 1.18.92-.26 1.91-.39 2.89-.39.98 0 1.97.13 2.89.39 2.21-1.49 3.17-1.18 3.17-1.18.63 1.58.23 2.75.12 3.04.74.81 1.18 1.83 1.18 3.09 0 4.42-2.69 5.4-5.25 5.68.41.36.78 1.07.78 2.15 0 1.55-.01 2.8-.01 3.18 0 .31.21.67.79.56C20.21 21.38 23.5 17.08 23.5 12 23.5 5.65 18.35.5 12 .5z"/></svg>
          GitHub
        </a>
      </div>

      <!-- Token Visualizer -->
      <div class="token-card">
        <div class="token-head">
          <span class="token-tag">token.preview</span>
          <span class="token-id">HS256 · 3-segment</span>
        </div>
        <div class="token-body">
          <div class="token-row h">
            <span class="tag">header</span>
            <span class="val">eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9</span>
          </div>
          <div class="token-row p">
            <span class="tag">payload</span>
            <span class="val">eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkhB...</span>
          </div>
          <div class="token-row s">
            <span class="tag">sig</span>
            <span class="val">SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQss...</span>
          </div>
          <div class="token-divider"></div>
        </div>
        <div class="token-foot">
          <span class="prompt">$</span>
          <span>jwt-hack decode &lt;token&gt;</span>
          <span class="blink"></span>
        </div>
      </div>
    </div>
  </section>

  <!-- Features -->
  <section class="landing-features">
    <div class="section-header">
      <div class="section-eyebrow">capabilities</div>
      <h2>{{ page.extra.features_title }}</h2>
      <p>{{ page.extra.features_description }}</p>
    </div>
    <div class="features-grid">
      <div class="feature-card">
        <span class="feature-num">01</span>
        <div class="feature-icon">
          <svg aria-hidden="true" focusable="false" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
        </div>
        <h3>encode &amp; decode</h3>
        <p>JWT and JWE tokens with multiple algorithms, custom headers, and DEFLATE compression.</p>
      </div>
      <div class="feature-card">
        <span class="feature-num">02</span>
        <div class="feature-icon">
          <svg aria-hidden="true" focusable="false" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
        </div>
        <h3>verify signatures</h3>
        <p>Symmetric and asymmetric algorithms verified with secrets or keys, plus expiration validation.</p>
      </div>
      <div class="feature-card">
        <span class="feature-num">03</span>
        <div class="feature-icon">
          <svg aria-hidden="true" focusable="false" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4"/></svg>
        </div>
        <h3>advanced cracking</h3>
        <p>Crack JWT secrets via dictionary or brute-force, with support for compressed tokens.</p>
      </div>
      <div class="feature-card">
        <span class="feature-num">04</span>
        <div class="feature-icon">
          <svg aria-hidden="true" focusable="false" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg>
        </div>
        <h3>attack payloads</h3>
        <p>Generate none-alg, algorithm confusion, and header manipulation attack variants.</p>
      </div>
      <div class="feature-card">
        <span class="feature-num">05</span>
        <div class="feature-icon">
          <svg aria-hidden="true" focusable="false" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>
        </div>
        <h3>high performance</h3>
        <p>Built in Rust with parallel processing for intensive operations &mdash; raw speed under load.</p>
      </div>
      <div class="feature-card">
        <span class="feature-num">06</span>
        <div class="feature-icon">
          <svg aria-hidden="true" focusable="false" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="2"/><path d="M12 7v4"/><line x1="8" y1="16" x2="8" y2="16"/><line x1="16" y1="16" x2="16" y2="16"/></svg>
        </div>
        <h3>mcp server</h3>
        <p>Integrate with AI models via Model Context Protocol for intelligent JWT analysis.</p>
      </div>
    </div>
  </section>

  <!-- CTA -->
  <section class="landing-cta">
    <div class="landing-cta-inner">
      <div class="section-eyebrow">open source</div>
      <h2>{{ page.extra.cta_title }}</h2>
      <p>{{ page.extra.cta_description }}</p>
      <a href="{{ page.extra.cta_button_url }}" class="btn btn-secondary" target="_blank" rel="noopener">
        {{ page.extra.cta_button_text }}
        <svg aria-hidden="true" focusable="false" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17L17 7"/><polyline points="7 7 17 7 17 17"/></svg>
      </a>
    </div>
  </section>
</main>
{% endblock %}