> base64 デコーダー | paste | decode <
// 任意の Base64 文字列(標準・URL セーフ・パディングなし)を貼り付けて、UTF-8 テキストへ即座にデコード。処理はすべてブラウザ内で完結します。
フォーマット自動判定
標準 RFC 4648 Base64、URL セーフ Base64 (-_)、パディング不足を自動で検出します。設定不要 — 貼り付けるだけ。
100% ブラウザ内処理
Base64 文字列が端末から出ることはありません。サーバーアップロード・ログ・テレメトリは一切なし。トークン・認証情報・機密ペイロードも安全です。
即時デコード
入力中にデコード実行。UTF-8 マルチバイト文字、絵文字、JSON、XML、Base64 化されたバイナリに対応。入力サイズ無制限。
// Base64 デコードの仕組み
Base64 デコードアルゴリズム:
Base64 は 3 バイトのバイナリデータを、64 文字のアルファベット(A-Z, a-z, 0-9, +, /)から取った 4 文字の ASCII に変換します。デコードはその逆で、各文字を 6 ビット値に対応付け、4 つの 6 ビット値を組み合わせて元の 3 バイトを復元します。パディング = は長さを 4 の倍数に揃えるためのものです。本デコーダーはパディングあり・なし・URL セーフのいずれも受け付け、UTF-8 テキストとして結果を返します。
デコード例:
入力 : SGVsbG8sIEJhc2U2NCE=
ビット: 01001000 01100101 01101100 01101100
01101111 00101100 00100000 01000010
01100001 01110011 01100101 00110110
00110100 00100001
出力 : Hello, Base64!
デコードの主な用途:
- >JWT のヘッダー・ペイロード(署名前)のデコード
- >Base64 エンコードされたメール添付ファイル(MIME)の読み取り
- >Base64 URL パラメータ・OAuth state トークンの確認
- >Data URI (data:text/plain;base64,...) からのテキスト抽出
- >Base64 でバイナリをラップした API レスポンスのデバッグ
// よくある質問
オンラインで Base64 をデコードするには?
上の 入力 エリアに Base64 文字列を貼り付けるだけです。自動デコード(デフォルトで有効)により、入力中に即座にデコードされ、出力 エリアに結果が表示されます。[DECODE] ボタンや Ctrl/Cmd + Enter でも実行できます。すべてローカルで処理されるため、JWT トークン、OAuth state、機密ペイロードを貼り付けても安全です。
このデコーダーが対応する Base64 バリアントは?
すべてです。以下を自動判定します:
• 標準 Base64 (RFC 4648) — アルファベット A-Z a-z 0-9 + /、パディング =。
• URL セーフ Base64 (RFC 4648 §5) — + と / の代わりに - と _。JWT、OAuth、Google API、AWS S3 プリサインド URL で使用。
• パディングなし Base64 — 末尾の = が省略されたもの。JWT で一般的で、デコーダー側でパディングを補う必要があります。
• 空白許容 — 改行・タブ・スペースは除去してからデコード(メール本文の 76 列ラッピングに対応)。
判定結果はボタン下のバッジに表示されます。
デコードが文字化けしたりエラーになるのはなぜ?
主な原因は次の 5 つです:
1. そもそも Base64 ではない。 16 進数・Base32・URL エンコードと混同されがちです。Base64 は A-Z a-z 0-9 + / =(URL セーフは - _)しか使いません。%20 を含むならパーセントエンコード、0-9 a-f だけなら 16 進数の可能性が高いです。
2. 切り詰め。 パディング後の長さは 4 の倍数である必要があります。末尾の == が欠落すると「不正な長さ」エラーになります。本ツールは自動補完しますが、大幅に切れている場合は失敗します。
3. URL セーフと標準の混在。 +/-_ がすべて混在している場合、破損している可能性が高いです。
4. 二重エンコード。 1 度デコードしても文字化け、それ自体がまた Base64 の場合、もう一度デコードすると本来のテキストが得られます。
5. 元データが UTF-8 ではない。 Base64 はバイト列をデコードします。元が暗号化データや PNG のような生バイナリなら、テキスト表示は文字化けします。これは正常で、Base64 → ファイル系ツールを使ってください。
この Base64 デコーダーで JWT をデコードするには?
JWT は header.payload.signature の形式で、3 つの部分がドットで区切られています。すべて パディングなしの URL セーフ Base64 です。ペイロードを確認するには:
1. 2 つのドットの間、真ん中の部分をコピー。
2. 上のデコーダーに貼り付け。自動デコードが URL セーフ変換とパディング補完を行います。
3. iss・sub・exp・iat などのクレームを含む JSON ペイロードが得られます。
3 番目の署名部分は HMAC や RSA のバイナリ出力なので、テキストでは文字化けします。これは想定どおりです。署名検証まで行う場合は、専用の JWT デコーダー をご利用ください。
セキュリティ注記: デコードは検証ではありません。JWT のペイロードは誰でも読めます(仕様上の設計です)。署名は発行者の公開鍵や共有シークレットで別途検証します。
コマンドライン(bash・PowerShell・Python)で Base64 をデコードするには?
主要プラットフォームにはすべて Base64 デコーダーが標準搭載されています:
macOS / Linux (bash/zsh):echo 'SGVsbG8=' | base64 -d → Hello。macOS で動かない場合は -D。URL セーフ入力は先に tr '_-' '/+' でパイプします。
Windows PowerShell:[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8='))
Python:import base64
base64.b64decode('SGVsbG8=').decode('utf-8') # Hello
base64.urlsafe_b64decode(s + '===').decode() # URL セーフ + パディング自動補完
Node.js:Buffer.from('SGVsbG8=', 'base64').toString('utf-8')
ブラウザ DevTools:atob('SGVsbG8=') — どのコンソールでも動作。UTF-8 文字列は new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0))) でラップします。
PHP: base64_decode('SGVsbG8=')
Ruby: Base64.decode64('SGVsbG8=')
Go: base64.StdEncoding.DecodeString("SGVsbG8=")
機密トークンや認証情報をデコードするのに安全?
はい。サーバー側ツールより安全です。何もブラウザから外に出ません。 デコードは端末上の JavaScript で完結し、ネイティブ atob() と TextDecoder API を使用します。ネットワーク通信・アップロード・ログ・分析は一切ありません。DevTools のネットワークタブを開けば、リクエストがゼロであることを確認できます。
ただし Base64 は暗号化ではありません。デコード用文字列を持っていれば誰でも復号できます。本ツール自体は安全ですが、次の点にご注意ください:
• 未期限切れの JWT のスクリーンショットを共有しない。
• ログ・画像・チャットに漏れた認証情報はローテーションする。
• OAuth state・CSRF トークン・セッション ID は無効化するまで機密扱い。
Base64 文字列自体が機密の企業・規制環境では、ページをオフライン保存(Cmd/Ctrl + S)して完全エアギャップで使用することも可能です。
'data:image/png;base64,iVBORw0KGgo...' のような Base64 Data URI をデコードするには?
Data URI の構文は data:[<mediatype>][;base64],<data> です。ペイロード部分だけをデコードするには:
1. カンマを探します。カンマの前はメタデータ(data:image/png;base64)、後ろは Base64 エンコードされたファイル本体。
2. カンマ以降のみをデコーダーに貼り付け。
3. バイナリ(PNG・JPG・PDF)の場合、生バイトのため文字化けします。これは正常です。
4. Data URI 画像を表示するには、完全な data:... URI をブラウザアドレスバーに貼り付けます — ブラウザが直接デコード・表示します。
5. 画像ファイルとして保存するには、専用の Base64 画像変換 をお使いください。PNG/JPG/WebP としてダウンロードできます。
Data URI は CSS background-image、インライン SVG、メール署名画像、JSON API に埋め込まれた PDF、Electron/VS Code 拡張のアイコンなどで頻繁に見られます。
Base64 エンコードとデコードの違いは?
エンコード は任意のバイナリやテキストを、印字可能 ASCII 文字だけで構成される文字列に変換します — テキストしか扱えない経路(メール、URL、JSON)で安全に運べます。デコード はその逆で、ASCII Base64 文字列を元のバイト列に戻します。
重要な性質:
• ロスレス: decode(encode(x)) === x。データが失われることはありません。
• 暗号化ではない: 秘匿性はゼロ。誰でも復号可能。
• サイズオーバーヘッド: 出力は入力の約 33% 増(3 バイト → 4 バイト)。
• 用途: JWT、MIME メール添付、HTTP Basic 認証、OAuth コード、S3 プリサインド URL、HTML/CSS インライン画像など。
このページはデコード専用です。逆方向(テキスト/ファイル → Base64)は Base64 エンコーダー、画像は 画像 → Base64 変換ツールをお使いください。
非常に大きな Base64 文字列やファイルはデコードできる?
はい、ブラウザのメモリ上限までなら可能です。入力長は制限なしで、50 MB の Base64 文字列(デコード後 ~37 MB)まで現代ノート PC でテスト済みです。パフォーマンス:
• < 100 KB: 瞬時、UI 遅延なし。
• 1 – 10 MB: 50〜500 ms 程度。
• 10 – 100 MB: atob は同期処理のため、ブラウザが 2〜10 秒フリーズする可能性があります。auto-decode を無効にし、[DECODE] を手動で押してください。
• > 100 MB: ブラウザのメモリ上限に達します。GB 規模はコマンドライン(base64 -d)推奨。
デコード結果がバイナリファイル(PNG・PDF・ZIP)の場合、テキスト出力欄は文字化けします。バイトをファイルとして保存するには Base64 画像変換、またはコマンドラインで echo '<base64>' | base64 -d > output.bin をお使いください。
オフラインでも動作する?
はい。一度ページが読み込まれれば、デコードはすべてクライアント側 JavaScript で行われ、ネットワーク通信は不要です。完全オフラインで使うには:
1. ページを保存: Ctrl+S(Windows/Linux)または Cmd+S(macOS)で「ウェブページ、完全」として保存。保存された HTML からデコーダーが動作します。
2. PWA としてインストール(対応ブラウザの場合): 「このアプリをインストール」を選択 — オフライン起動可能なランチャーが作成されます。
3. DevTools: ブラウザコンソールで atob('SGVsbG8=') を実行すれば、本ページなしでもデコードできます。
エアギャップのセキュリティ調査、ペンテストラボ、データ持ち出し制限のある企業環境、インターネットのないフライトや列車内で便利です。