Skip to content

JWT デコーダー — オンライン解析ツール

JWTトークンを無料のJWTデコーダーでオンラインデコード。ヘッダー、ペイロード、署名、有効期限、アルゴリズム、クレームを即座に検査できます。100%ブラウザ動作 — トークンはデバイスから外に出ません。登録不要、追跡なし。

トラッキングなし ブラウザで動作 無料
JWTトークン
RFC 7519準拠性およびプライバシー保証について審査済み — Go Toolsセキュリティチーム · Apr 22, 2026

JWTとは?

JSON Web Token(JWT、「jot」と読みます)は、2者間でクレームをやり取りするためのコンパクトでURLセーフなトークン形式です。RFC 7519で定義されており、OAuth 2.0のアクセストークン、OpenID ConnectのIDトークン、最新の認証プロバイダー(Auth0、Okta、Clerk、Supabase、Firebase)のAPIキー、マイクロサービス間のトークンなどで主流の認証情報形式として使われています。

「JSON Web Token (JWT) は、HTTP Authorization ヘッダーや URI クエリパラメータなど、スペースに制約のある環境を対象としたコンパクトなクレーム表現形式である。」— RFC 7519, Section 1

JWTは、ドットで連結された3つのBase64URLエンコード済みJSONオブジェクト、header.payload.signatureで構成されます。ヘッダーはトークンがどのように署名されているかを記述します(algクレームはHS256やRS256など、typクレームは通常「JWT」です)。ペイロードはクレームを運びます。isssubaudexpiatなどの登録済みクレームに加え、発行者が必要とする任意のカスタムクレーム(role、scope、email、テナントIDなど)が入ります。署名は、発行者のシークレットまたは秘密鍵を使ってヘッダーとペイロードから計算される暗号学的な証明で、受信者が改ざんを検出できるようにします。

重要なのは、JWTはエンコードされたものであり、暗号化されたものではないということです。トークンを持っている人は誰でもペイロードを読むことができます。デコードはBase64URLとJSONのパースにすぎません。セキュリティの保証は署名によって得られます。攻撃者はJWTを読むことはできますが、署名鍵なしでは、署名検証を通過する別のJWTを生成することはできません。これが、JWTがネットワーク経由で渡しても安全である一方、秘密を詰め込むには不適切な理由です。

JWTデコーダーは、署名には触れずに、アルゴリズム、クレーム、有効期限などトークンに含まれる内容を正確に表示します。「このトークンは期限切れか?」「このユーザーにはどんなロールがあるか?」「このトークンを発行した発行者は誰か?」「これは拒否すべきalg:noneトークンか?」といった疑問に最も速く答える方法です。本ツールのデコードはすべてブラウザ内でローカルに実行されるため、本番環境のトークンを貼り付けても安全です。

JWTを扱う作業は、他の開発者ツールと組み合わせて行うことがよくあります。不正なトークンをデバッグする際にBase64URLで包まれたセグメントをデコードしたり、プロキシから取得したAuthorizationヘッダーをURLデコードしたり、expクレームを手動で人間の日付に変換したりすることがあります。JWTが本番環境でどのように署名・検証・ローテーションされるかをより深く理解したい方は、Base64の基礎ガイドをご覧ください。Base64URLはすべてのJWTの土台となっています。

// Decode a JWT in the browser — header & payload only
function decodeJwt(token) {
  const [h, p, s] = token.split('.');
  const pad = (seg) => seg + '==='.slice((seg.length + 3) % 4);
  const decode = (seg) => JSON.parse(
    atob(pad(seg).replace(/-/g, '+').replace(/_/g, '/'))
  );
  return { header: decode(h), payload: decode(p), signature: s };
}

const { header, payload } = decodeJwt(token);
console.log(header);   // → { alg: 'HS256', typ: 'JWT' }
console.log(payload);  // → { sub: 'user_123', exp: 1999999999, ... }

// Expiration check
const expired = payload.exp * 1000 < Date.now();

主な機能

JWTを即座にデコード

貼り付けるだけで、JWTがリアルタイムでデコードされます — ヘッダー、ペイロード、署名がその場で解析されます。デコードボタンもサーバーへのラウンドトリップもありません。

有効期限の検出

expクレームを自動的に読み取り、トークンが期限切れの場合は赤いバッジと、ローカルタイムゾーンでの正確な有効期限日時を表示します。

アルゴリズム非依存

HS256/384/512、RS256/384/512、PS256/384/512、ES256/384/512、EdDSA、alg:noneなど、すべてのJWSアルゴリズムをデコードします。

100%ローカル

デコードはブラウザ内のネイティブatobとJSON.parseで実行されます。トークンがアップロードされることは一切ないため、本番環境の認証情報でも安全です。

クレームを意識した表示

RFC 7519の登録済みクレーム(iat、exp、nbf、iss、aud、sub、jti)を強調表示するため、認証の問題を一目で見つけられます。

ワンクリックコピー

ヘッダーJSON、ペイロードJSON、または生の署名をワンクリックでクリップボードにコピーできます。バグレポートやテストに最適です。

使用例

HS256トークン(有効)

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyXzEyMyIsIm5hbWUiOiJBbGljZSIsInJvbGUiOiJhZG1pbiIsImlhdCI6MTcxNTAwMDAwMCwiZXhwIjoxOTk5OTk5OTk5fQ.4NhxPjwoZxPNuxG-2C5ugGxaUsUJ0QyskAz7Ymz5Sg0
{
  "alg": "HS256",
  "typ": "JWT"
}

{
  "sub": "user_123",
  "name": "Alice",
  "role": "admin",
  "iat": 1715000000,
  "exp": 1999999999
}

HMAC-SHA256で署名されたトークン。サブジェクト、ロール、将来の有効期限を含む、セッション認証で最もよく使われるJWTの構成です。

RS256トークン(期限切れ)

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImtleS0yMDI1LTAxIn0.eyJpc3MiOiJodHRwczovL2F1dGguZXhhbXBsZS5jb20iLCJhdWQiOiJhcGkuZXhhbXBsZS5jb20iLCJzdWIiOiI5MDA4NzE2NSIsImlhdCI6MTYwMDAwMDAwMCwiZXhwIjoxNjAwMDAzNjAwLCJzY29wZSI6InJlYWQ6dXNlciB3cml0ZTpwb3N0In0.signature_placeholder
{
  "alg": "RS256",
  "typ": "JWT",
  "kid": "key-2025-01"
}

{
  "iss": "https://auth.example.com",
  "aud": "api.example.com",
  "sub": "90087165",
  "iat": 1600000000,
  "exp": 1600003600,
  "scope": "read:user write:post"
}

RSAで署名されたOAuthスタイルのアクセストークン。ヘッダーにkid(キーID)があり、expクレームはこのトークンがすでに期限切れであることを示しています。

OIDC IDトークン

eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJzdWIiOiIxMTA1MDIyNTExNTU4OTkwNzY2Mzk1IiwiYXpwIjoiY2xpZW50LWlkIiwiYXVkIjoiY2xpZW50LWlkIiwiZW1haWwiOiJhbGljZUBleGFtcGxlLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJpYXQiOjE3MTUwMDAwMDAsImV4cCI6MTk5OTk5OTk5OSwibm9uY2UiOiJhYmMxMjMifQ.signature
{
  "alg": "ES256",
  "typ": "JWT"
}

{
  "iss": "https://accounts.google.com",
  "sub": "110502251155899076639",
  "azp": "client-id",
  "aud": "client-id",
  "email": "alice@example.com",
  "email_verified": true,
  "iat": 1715000000,
  "exp": 1999999999,
  "nonce": "abc123"
}

ECDSAで署名されたOpenID Connect IDトークン。メール関連のクレームと、リプレイ攻撃対策のnonceを含みます。

alg:noneトークン(署名なし)

eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiJkZWJ1Zy11c2VyIiwiaWF0IjoxNzE1MDAwMDAwfQ.
{
  "alg": "none",
  "typ": "JWT"
}

{
  "sub": "debug-user",
  "iat": 1715000000
}

alg:noneを使う署名なしトークンです。本番環境でこれを受け入れることは古典的なJWTの脆弱性となります。サーバー側でalg:noneは必ず拒否してください。

使い方

  1. 1

    JWTを貼り付けてデコード

    ドットで区切られた3つのセグメントを含む完全なトークンを入力ボックスに貼り付けてデコードします。デコーダーはブラウザ内で即座に実行されるため、ボタンをクリックする必要はありません。

  2. 2

    デコードされたヘッダー、ペイロード、ステータスを読む

    デコードされたヘッダーでアルゴリズムとトークンタイプを、デコードされたペイロードでクレームを、上部の有効期限/発行時刻チップで状態を読み取れます。期限切れのトークンは赤でフラグ付けされます。

  3. 3

    デコード結果をコピー

    各パネルのコピーボタンを使って、デコードされたヘッダーJSON、デコードされたペイロードJSON、または生の署名をコピーします。トークンはどこにも送信されていません。デコードはブラウザ内でローカルに行われました。

Common Errors

alg:noneを受け入れる

署名なしのJWTは誰でも偽造できます。本番環境ではalg:noneを絶対に許可せず、verify呼び出しには常に明示的なアルゴリズムリストを渡してください。

✗ 誤り
jwt.verify(token, secret)  // library default may allow 'none'
✓ 正しい
jwt.verify(token, secret, { algorithms: ['RS256'] })

expクレームが欠落している

expのないJWTは永遠に生き続けます。トークンが漏洩した場合、自然な失効ポイントがありません。トークンの種類に応じた有効期限を必ず設定してください。

✗ 誤り
{ "sub": "user_123", "role": "admin" }  // no exp
✓ 正しい
{ "sub": "user_123", "role": "admin", "exp": 1715003600 }

ペイロードにシークレットを入れる

JWTのペイロードは暗号化されていません。トークンを持っている人は誰でも読めます。パスワード、APIキー、伏字にしていないPIIをJWTペイロードに絶対に入れないでください。

✗ 誤り
{ "sub": "user_123", "password": "hunter2" }
✓ 正しい
{ "sub": "user_123", "role": "admin" }  // payload stays minimal

一般的なユースケース

Authorization Bearerトークンをデコード
Authorization: BearerヘッダーのJWTトークンをデコードして、バックエンドが受け取っているクレーム、audience、有効期限を検証します。
OAuth 2.0・OIDCトークンをデコード
OAuth 2.0およびOpenID Connect統合中に、認可サーバー(Auth0、Okta、Google、Keycloak)から返されたアクセストークンやIDトークンをデコードします。
期限切れセッションの診断
拒否されたトークンが期限切れなのか、audienceが間違っているのか、時刻ずれの問題なのかを1秒で確認できます。
キーローテーションの確認
ヘッダーのkid(キーID)を読み取り、JWKSのローテーションが期待どおりの鍵で署名されたトークンを発行しているかを検証します。
セキュリティレビュー
コードレビューやペンテスト中に、alg:noneで署名されたトークン、expが欠落しているトークン、ペイロードからPIIが漏洩しているトークンを発見します。
マイクロサービスのトークン検査
メッシュ内のサービス間トークンをデコードし、ダウンストリーム呼び出しが認可しているスコープとサブジェクトを確認します。

技術的な詳細

RFC 7519準拠
RFC 7519(JWT)、RFC 7515(JWS)、RFC 7518(JWA)に準拠したJWSトークンを処理します。登録済みのすべてのアルゴリズムがデコード対象です。
Base64URLデコード
RFC 4648で定義されたURLセーフなBase64アルファベット(+と/の代わりに-と_)を使用し、パディングに寛容なパースを行います。
ブラウザネイティブ・依存ゼロ
ブラウザのatob、TextDecoder、JSON.parseを基盤としており、外部ライブラリもネットワーク呼び出しもテレメトリもありません。

ベストプラクティス

検証せずに信頼しない
デコーダーはクレームを表示するだけで、それを証明するものではありません。クレームを信頼する前に、発行者の鍵を使って必ずサーバー側で署名を検証してください。
本番環境ではalg:noneを拒否する
JWTライブラリには許可するアルゴリズムの明示的なリストを設定してください。alg:noneは決して受け入れず、キーローテーション時のalg不一致にも注意してください。
ペイロードを軽量に保つ
識別子と短命のクレームをJWTに入れ、大きなデータは不透明なセッションIDの背後に保持してください。大きなトークンはリクエストごとに帯域を消費します。

よくある質問

JWTトークンをオンラインでデコードするにはどうすればよいですか?
完全なJWT — ドットで区切られた3つのセグメント(header.payload.signature)すべて — を上のデコーダーに貼り付けてください。デコードはブラウザ内で即座に行われます。ヘッダーとペイロードはBase64URLでデコードされて読み取り可能なJSONとなり、署名は生の文字列として表示されます。ステータス行には署名アルゴリズム、発行時刻、有効期限が表示されるため、期限切れのトークンを一目で見つけられます。JWTを手動でデコードするには、トークンをドットで分割し、最初の2つのセグメントをBase64URLデコードしてJSONとしてパースします。ペイロードはエンコードされているだけで、暗号化されていないため、トークンを持っている人は誰でもそのクレームを読めます。このデコーダーは本番環境のトークンでも安心してお使いいただけます。何もデバイスの外に出ることはありません。ネットワークリクエストもロギングも追跡もありません。
JWT(JSON Web Token)とは何ですか?
JSON Web Token(JWT)は、2者間でクレームをやり取りするためのコンパクトでURLセーフな認証情報です。RFC 7519で定義されており、Base64URLでエンコードされた3つの部分をドットで連結した形式になっています。ヘッダー(アルゴリズムとトークンタイプ)、ペイロード(ユーザーやトークン自体に関するクレーム)、署名(信頼された発行者によって発行されたことを暗号学的に証明する部分)の3つです。JWTは、OAuth 2.0のアクセストークンやOpenID ConnectのIDトークンを表現する標準的な方法です。
このJWTデコーダーでトークンを扱っても安全ですか?
はい、安全です。デコードはすべてブラウザ内でネイティブのJavaScript(atobとTextDecoder)を使って実行されます。トークンがサーバーに送信されたり、ログに記録されたり、保存されたり、アナリティクスに使用されることは一切ありません。Cookieもトラッキングもありません。JWTには有効なアクセストークンが含まれていることがあり、リモートのデバッガーに貼り付けることは認証情報を渡すことと同じになるため、これは重要です。本ツールは本番環境のトークンでも安心してお使いいただけます。
JWTデコーダーはどのように動作しますか?
JWTデコーダーは、トークンをドットで3つの部分に分割し、ヘッダーとペイロードをBase64URLデコードしてJSONとしてパースします。署名の検証には発行者のシークレットや公開鍵が必要ですが、それはクライアントサイドのデコーダーでは安全に行えないため、署名はBase64URL文字列のまま表示されます。そのためデコードは瞬時に完了してクレームが明らかになりますが、中身を信頼する前には必ずサーバー側で正しい鍵を使って署名を検証する必要があります。
このツールはJWTの署名を検証できますか?
いいえ、意図的に行いません。署名検証には発行者のシークレット(HMACの場合)や公開鍵(RSA/ECDSA/EdDSAの場合)が必要ですが、これらを公開のWebツールに貼り付けるべきではありません。検証はサーバー、認証ミドルウェア、またはJWKSエンドポイントにアクセスできるSDK内で行う必要があります。このデコーダーはトークンが主張している内容を調べるためのものであり、トークンが本物で改ざんされていないことを保証するものではありません。
iat、exp、nbf、iss、aud、sub、jtiとは何ですか?
これらはRFC 7519で定義された登録済みクレームです。iat(issued at)はトークンが作成されたUnixタイムスタンプです。exp(expiration)はトークンが有効でなくなる時刻です。本ツールはこれを人間が読める日付に変換し、expが過去の場合はトークンを期限切れとして表示します。nbf(not before)はトークンが使用可能になる最も早い時刻です。iss(issuer)はトークンを作成した発行者を示します。aud(audience)は想定される受信者を示します。sub(subject)はプリンシパル(通常はユーザーID)を示します。jtiはリプレイ防止に使われる一意のトークンIDです。アプリケーション固有のクレーム(role、scope、email、nameなど)はこれらと並んで配置されます。
JWTが期限切れなのにデコーダーがまだデコードするのはなぜですか?
デコードは検証とは異なります。JWTデコーダーは有効期限に関係なくコンテンツを読み取るため、期限切れや無効なトークンを調べて、なぜ拒否されたのかをデバッグできます。本ツールの「期限切れ」バッジは、expクレームをローカル時計と比較し、expが過去の場合にトークンをフラグ付けします。実際の認証サーバーならトークンを直ちに拒否しますが、期限切れのトークンを表示しないデコーダーはデバッグに使えないため意味がありません。
JWT、JWS、JWEの違いは何ですか?
JWTは一般的な概念で、コンパクトなトークンとしてエンコードされたJSONオブジェクトを指します。JWS(RFC 7515)は署名付きJWTで、ペイロードは誰でもデコードして読むことができ、署名は改ざんされていないことを証明します。これは最もよく遭遇するJWTです。JWE(RFC 7516)は暗号化されたJWTで、ペイロード自体が暗号文であり、復号鍵なしではデコードできません。本ツールはJWSトークンをデコードします。JWEトークンはヘッダーしかデコードできず、暗号化されたペイロードは鍵がなければ読み取れません。
alg:noneはなぜ危険なのですか?
alg:noneのJWTには署名がないため、誰でも任意のユーザーを名乗るトークンを作成できます。初期のJWTライブラリはデフォルトでalg:noneを受け入れており、攻撃者が署名を削除してalgnoneに設定し、管理者トークンを偽造する有名な認証バイパスの脆弱性につながりました。現在の成熟したJWTライブラリはすべて、明示的に許可しない限りalg:noneを拒否しており、認証リクエストでは絶対に受け入れてはいけません。デバッグ中にalg:noneトークンを調べるのは正当なことなので本デコーダーは表示しますが、本番環境で受け取ったそのようなトークンは敵対的なものとして扱ってください。
このJWTデコーダーはどのアルゴリズムに対応していますか?
ヘッダーとペイロードのデコードは、Base64URLとJSONのパースだけで済むため、すべてのアルゴリズムで動作します。つまりアルゴリズムに依存しません。本ツールは、HS256、HS384、HS512(HMAC)、RS256、RS384、RS512(RSA + SHA)、PS256、PS384、PS512(RSA-PSS)、ES256、ES384、ES512(ECDSA)、EdDSA(Ed25519/Ed448)、および署名なしトークン(alg:none)で署名されたトークンを正しく読み取ります。署名検証のみがアルゴリズム固有ですが、本ツールは検証を行いません。
JWTはlocalStorageとCookieのどちらに保存すべきですか?
セッショントークンにはHttpOnly、Secure、SameSite=StrictのCookieを優先してください。localStorageのトークンはページで動作するあらゆるJavaScriptから読み取れるため、XSSの脆弱性が1つあるだけですべてのアクティブセッションが漏洩します。HttpOnly CookieはJavaScriptからは見えないため、XSSの影響範囲は攻撃者がライブページ内でできることに限定され、何日も再利用できる盗まれたトークンにはなりません。どうしてもlocalStorageを使う必要がある場合(例えばクロスドメインアプリ)は、アクセストークンの有効期限を短く(時間単位ではなく分単位に)保ち、HttpOnly Cookieに別のリフレッシュトークンを置いてください。
Node.js、Python、GoでJWTをデコードするにはどうすればよいですか?
Node.js: 読み取り専用ならjsonwebtoken.decode(token)、検証付きならjsonwebtoken.verify(token, key)です。Python: 読み取りにはPyJWT.decode(token, options={'verify_signature': False})を使い、検証には鍵を渡します。Go: 読み取り専用ならjwt.ParseUnverified(token, claims)、検証付きならjwt.Parse(token, keyFunc)です。どの言語でも、本番コードでoptions={'verify_signature': False}で検証を無効にしてはいけません。これはこのWebツールが意図的にデバッグ目的で行っていることであり、認証ではなく検査をしている場合にのみ安全です。
JWTの最大サイズはどのくらいですか?
JWT標準には厳密な制限はありませんが、ほとんどのWebサーバーのヘッダーはデフォルトで約8 KBまでです。AuthorizationヘッダーやCookieに余裕をもって収めるため、トークンは4 KB未満に保つようにしてください。それより大きい場合、おそらくペイロードにクレームを詰め込みすぎています。大きなデータは不透明なセッションIDの背後に移動し、必要なときにバックエンドから取得してください。肥大化したJWTは、すべてのAPI呼び出しで送信されるため、リクエストごとにコストがかかります。
トークンを貼り付けたら「Invalid JWT format」と表示されました。何が問題ですか?
有効なJWTはドットで区切られたちょうど3つの部分、header.payload.signatureで構成されます。よくある原因は次のとおりです。(1) ペイロード部分だけをコピーしてしまった、(2) 途中に空白や改行が含まれている、(3) 転送中にトークンが切り詰められた(端末の折り返しでよく起こります)、(4) トークンがheader.encryptedKey.iv.ciphertext.tag形式(5つのセグメント)のJWEである、(5) トークンがURLエンコードされていて、まずURLデコードが必要、といったケースです。APIが返した生の値を確認してください。多くのエディタはホバー時に不可視文字を表示してくれます。
シークレット鍵なしでJWTをデコードできますか?
はい。ヘッダーとペイロードはBase64URLでエンコードされているだけで、暗号化されていません。トークンを持っている人なら誰でも、鍵なしでそのクレームを読むことができます。これは意図的な設計で、ペイロードは読み取り可能であることが前提となっており、受信者がそれをもとに認可を判断できるようになっています。シークレットや公開鍵は、トークンが改ざんされていないことを検証するためだけに必要です。だからこそ、機密データ(パスワード、秘密鍵、受信者がまだ知らないPIIなど)をJWTペイロードに入れてはいけません。
JWTはPostmanでは動作するのにバックエンドで拒否されます。どうデバッグすればよいですか?
ここでトークンをデコードして次の点を確認してください。(1) exp — サーバーの時計から見て未来になっていますか?サーバーの時刻ずれはよくある原因です。(2) iss / aud — バックエンドが期待するものと完全に一致していますか?audの不一致はもっともよくある誤拒否の原因です。(3) alg — 検証コードはそのアルゴリズムを許可していますか?RS256のみを受け入れるように設定されたライブラリではHS256トークンは失敗します。(4) kid — キーローテーションを使っている場合、ヘッダーのキーIDはJWKSに存在していますか?(5) 署名 — 正しいシークレット/公開鍵を貼り付けましたか?本デコーダーはヘッダーとペイロードのビューで(1)、(2)、(3)、(4)を明示するため、素早く原因を絞り込めます。

MD5ハッシュジェネレーター&ファイルチェックサムツール

セキュリティツール

無料オンラインMD5ハッシュ生成ツール。ブラウザ上でMD5・SHA-256・SHA-1・SHA-512のハッシュ値を即座に生成。テキストやファイルのチェックサム検証・比較、ワンクリックコピー対応。登録不要でデータはサーバーに送信されません。

ランダムパスワード生成 — カスタマイズ可能&安全

セキュリティツール

無料のオンラインランダムパスワード生成ツール。ブラウザ上で安全な強力パスワードを即座に自動生成できます。長さや文字種のカスタマイズ、最大50個の一括生成に対応。エントロピー分析付き強度メーター搭載。データはサーバーに送信されません。

UUID生成 & デコーダー — v1, v4, v5, v7 一括生成

セキュリティツール

無料のオンラインUUID生成ツール。v1/v4/v5/v7の全バージョンを即時生成。UUIDのデコード・検証、最大50件の一括生成に対応。登録不要、100%ブラウザ上で動作します。

進数変換ツール — 2進数・16進数・10進数・8進数

単位変換

無料オンライン進数変換ツール。2進数、8進数、10進数、16進数および任意の基数(2-36)間で数値を瞬時に変換。BigInt対応で桁数制限なし。登録不要・サーバー送信なし、すべての処理がブラウザ内で完結。コピーボタンやコードリテラル出力で開発作業を効率化。

Base64エンコーダー&デコーダー

エンコーディングとフォーマット

Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。

JPEG・PNG・WebP をオンラインで圧縮 — 無料・一括対応

単位変換

無料オンライン画像圧縮ツール。JPEG、PNG、WebP 画像をブラウザ上で最大 80% 縮小。サーバーへのアップロード不要で完全プライベート。最大 20 枚の一括圧縮、品質調整、圧縮前後の比較機能を搭載。登録不要ですぐに使えます。