Base64 デコード

Base64文字列を下に貼り付けてデコードをクリックするとプレーンテキストに変換されます。すべての処理はブラウザ内でローカルに行われます。

URL セーフな文字セット、改行、欠けたパディングはいずれも受け付けます。
コピーしました!

Base64デコーディングとは?

Base64デコーディングは、Base64エンコードされたASCII文字列を元のバイナリデータまたはテキストに変換します。これはBase64エンコーディングの逆操作です。

入力にBase64アルファベット(A-Za-z0-9+/=)以外の文字が含まれている場合、デコードはエラーで失敗します。

デコードにはブラウザ内蔵の Base64 関数を使います。この関数は厳格で、標準の文字セットと正しいパディングを前提とし、それ以外は推測せずに拒否します。得られたバイトは UTF-8 のテキストとして読み取られます。

デコードできない不具合を追っていますか。

デコードできないペイロードは、たいてい原因ではなく症状です。経路のどこかでの二重エンコード、宣言せず仮定された文字セット、誰の想定とも少しずれたバイト列に対して署名されたトークン。私たちはまさにこうした領域、つまり連携やAPI、そしてその間でデータを受け渡すシステムを手がけています。

不具合の内容を相談する

よくある質問

Base64 の文字列がデコードできないのはなぜですか。
ほぼ必ず次の 4 つのどれかです。文字セット外の文字が混じっている場合、たいてい URL が壊れたかコピー時に余計な記号を拾っています。次に 1 文字だけ余る長さで、これは整数バイトを表せません。次に URL セーフな文字セットで、そのハイフンとアンダースコアは標準デコーダーが受け付けません。最後に、途中でパディングが取り除かれた場合です。このページはブラウザ自身のデコーダーを使っており、4 つとも厳格に扱い、推測せず拒否します。
デコード結果が読める文字にならないのはなぜですか。
そのバイト列がもともとテキストではなかったからです。Base64 は任意のデータを運ぶので、中身が画像や PDF、圧縮アーカイブ、シリアライズされた構造であってもおかしくありません。このページはデコードしたバイトを UTF-8 のテキストとして読むため、テキストでないものは空になるか文字化けし、それ自体が答えになります。テキストのはずだったのなら二重エンコードを疑ってください。すでに Base64 になっているデータを、何かがもう一度 Base64 にしています。
パディングのない Base64 もデコードできますか。
このページではできません。パディングは、長さが 4 の倍数でないときにデコーダーが終端を知るために存在し、ブラウザのデコーダーはこれを要求します。等号は URL やファイル名で扱いにくいため多くのシステムが省きますが、その種の文字列なら、長さが 4 で割り切れるまで等号を足せばデコードできます。1 文字だけ余る長さはこの方法では直りません。Base64 の 1 文字は 6 ビットしか運ばず、そこから 1 バイトは作れないからです。
機密データをこのページに貼り付けても安全ですか。
デコードはブラウザ内で行われ、どこにも送信されないため、リスクはこのページそのものではありません。危ないのは端末側の残り全部です。ブラウザ拡張はページの中身を読めますし、貼り付けた秘密はクリップボード履歴に残りがちです。稼働中の本番の資格情報なら、ローカルでデコードしてください。コマンドライン版はどの Unix 機にも入っていますし、PowerShell にも同等の手段があります。
data URI はどうデコードしますか。
まず接頭辞を取り除いてください。data URI は data という語、MIME タイプ、ペイロードが Base64 であることを示す印、そしてペイロード本体からできており、デコードできるのは最後の部分だけです。カンマまでを含めてすべて削除し、残りを貼り付けます。1 文字多く、あるいは少なく切ってしまうことが、そのあとデコードに失敗する典型的な原因です。