エンコーディング 🔒 ブラウザ内で動作 — データは送信されません

Base64デコーダー

Base64文字列を貼り付けると、入力中にデコード結果が表示されます。読めるテキスト、画像のプレビュー、ダウンロード用のファイルのいずれかで確認できます。

入力
出力

Base64をオンラインでデコード

Base64はバイナリデータを英数字などのプレーンな文字に変換し、JSON、メール、HTML、URLの中で運べるようにする方式です。APIのレスポンス、設定ファイル、KubernetesのSecret、メールのソースなどでこうした長い文字列を見かけたら、デコードすれば実際の中身がわかります。

このページは、貼り付けた時点でデコードするよう設定したBase64エンコーダー・デコーダーを開きます。デコードはブラウザー内で行われます。Base64文字列には認証情報や個人データが含まれていることが多いため、これは重要な点です。

図:テキスト「Man」をバイトとビットに分解し、4つの6ビット値に並べ替えてBase64文字列「TWFu」にする流れ。テキストバイトビット6ビット値Base64M77a97n11001001101011000010110111019T22W5F46u
Base64は3バイト(24ビット)を0〜63の4つの6ビット値に分け、それぞれを1文字で表します。「Man」は「TWFu」になります。エンコード後のデータが約3分の1大きくなるのはこのためです。

ツールが自動で処理すること

  • 空白と改行:76文字で折り返されたMIME形式のメール本文など。
  • Base64URL:-と_を使う形式で、JWTやURLで使われます。
  • パディングの省略:末尾の=はなくても構いません。
  • データURI:data:image/png;base64,…など。
  • UTF-8のテキスト:アクセント記号、絵文字、日本語などラテン文字以外の文字も含みます。

テキスト、画像、ファイルのどれになるか

デコード後、バイト列がチェックされます。有効なUTF-8テキストで、既知のバイナリ形式でなければテキストとして表示されます。PNG、JPEG、GIF、WebP、PDF、ZIPファイルのシグネチャで始まっていれば、画像ならプレビューが表示され、正しい拡張子付きのダウンロードボタンが現れます。Base64になった添付ファイルや埋め込み画像は、こうして元に戻せます。

デコードに失敗するよくある原因

症状考えられる原因対処法
「Not valid Base64」引用符やキー名など、ほかのテキストも一緒にコピーしたエンコードされた値だけを貼り付ける
テキストのはずがファイルとして提供されるテキストがUTF-8ではなかった(例:Windows-1252)ダウンロードし、その文字コードで開く
出力がまたBase64のように見えるデータが2回エンコードされていた結果をもう一度デコードする
長くきれいな文字列なのに「Not valid Base64」文字列が途中で切れている値を最後まで完全にコピーする

コードとコマンドラインでデコードする

LinuxとmacOSではecho 'SGVsbG8=' | base64 --decode、PowerShellでは[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('SGVsbG8='))を使います。JavaScriptではnew TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))がUTF-8として正しくデコードしますが、単なるatobではそうなりません。Pythonならbase64.b64decode(s).decode()です。

素のBase64ではなくトークンを調べたいときは、JWTデコーダーがヘッダーとペイロードをデコードして整形します。逆に画像をBase64にするには、画像をBase64に変換を使ってください。

関連ガイド