よくある Base64 デコードエラーを修正する
Base64 文字列がデコードに失敗する理由(パディングの欠落、URL セーフアルファベット、混入した空白文字)と、それぞれのケースを修復する具体的な手順を解説します。
- 1
Base64 は 3 バイトを 4 文字にエンコードするため、有効な文字列の長さ(空白を除く)は常に 4 の倍数です。デコーダーが INVALID_BASE64 を報告したら、原因はほぼ常に次の 3 つのいずれかです。
- 2 Base64 デコーダー →
デコードに失敗する文字列を貼り付けて、まず標準アルファベットでデコードを試してみましょう。エラーメッセージは無効な文字と無効な長さを区別します。
- 3
原因 1:パディングの欠落 — 長さが 4 で割って 2 または 3 余る場合は、「=」を付けて長さを 4 の倍数にします。原因 2:URL セーフアルファベット — トークンや URL パラメータでは「+」「/」の代わりに「-」「_」が使われるため、デコード前に置き換えます。原因 3:混入した空白や改行 — MIME 転送で挿入されたスペースと改行を取り除きます。
- 4 Base64 エンコーダー →
往復チェック:既知の平文をエンコードし、その出力を壊れた文字列と 1 文字ずつ比較して、アルファベットやパディングの差異を見つけます。
よくある質問
- なぜ一部の Base64 文字列は「=」で終わるの?
- パディングです。入力が 3 バイトの倍数でない場合、出力長が 4 の倍数になるように 1 つまたは 2 つの「=」が追加されます。パディングは推論できる場合もありますが、厳格なデコーダーはこれを要求します。
- Base64 は暗号化ですか?
- いいえ。Base64 は秘密鍵のない可逆エンコードです。バイナリデータをテキスト専用チャネルで運ぶために使われるもので、データを保護するために使うものではありません。
このタスクを解決するワークフロー
Ascii85 から Base64 へ変換
Ascii85 をデコードし、より広い互換性のために Base64 として再エンコードする。 パイプライン
Base2048 から Base64 へ変換
Base2048(絵文字)をデコードし、標準転送のために Base64 として再エンコードする。 パイプライン
Base32 から Base64 へ変換
Base32 エンコード文字列を生バイトにデコードし、よりコンパクトな表現のために Base64 として再エンコードする。 パイプライン
Base58 から Base64 へ変換
Base58 をデコードし、標準互換性のために Base64 として再エンコードする。 パイプライン
Base64 エンコード後デコードのラウンドトリップ検証
テキストを Base64 にエンコードし、デコードしてラウンドトリップが元のデータを保持することを検証する。 パイプライン
Base64 から Base85 へ変換
Base64 をデコードし、コンパクトな表現のために Base85 として再エンコードする。 パイプライン
Base64 から Hex へ変換
Base64 文字列を生バイトにデコードし、検査や相互運用のために Hex として再エンコードする。 パイプライン
Blowfish 暗号化後に Base64 エンコード
Blowfish で暗号化し、テキストセーフな転送のために Base64 エンコードする。 パイプライン
Basic Auth 認証情報ペアのデコード
HTTP Basic Authorization ヘッダーの Base64 部分を username:password にデコードする。 パイプライン
DES 暗号化後に Base64 エンコード
DES で暗号化し、レガシー互換性のために Base64 エンコードする。 パイプライン
URL 転送用の JSON ペイロードのエンコード
JSON ドキュメントを URL パラメータ用に準備する: 整形、Base64 エンコード、パーセントエンコード — ネストされたパラメータデコードチェーンの正確な逆順。 パイプライン
AES 暗号化後に Base64 エンコード
平文を AES で暗号化し、テキストセーフな転送のために暗号文を Base64 としてエンコードする。 パイプライン
コンテンツのハッシュと Base64 エンコード
入力のハッシュを計算し、コンパクトな転送のためにハッシュダイジェストを Base64 としてエンコードする。 パイプライン
Hex から Base64 へ変換
Hex 文字列を生バイトにデコードし、コンパクトな転送のために Base64 として再エンコードする。 パイプライン
HMAC 署名後に Base64 エンコード
HMAC 署名を生成し、API 認証ヘッダーのために Base64 エンコードする。 パイプライン
Morse エンコードと Base64 転送
テキストを Morse 符号としてエンコードし、デジタル転送のために Base64 エンコードする。 パイプライン
JWT ペイロードのデコードとフォーマット
JWT トークンを解析し、ペイロードを抽出し、検査のために JSON をフォーマットする。 パイプライン
RC4 暗号化後に Base64 エンコード
RC4 で暗号化し、転送のために Base64 エンコードする。 パイプライン
RIPEMD-160 ハッシュ後に Base64 エンコード
RIPEMD-160 ハッシュを計算し、転送のために Base64 エンコードする。 パイプライン
テキストシャッフルと Base64 エンコード
テキスト文字をシャッフルし、その後結果を Base64 エンコードする。 パイプライン
Unicode エスケープと Base64 エンコード
テキストを Unicode エスケープし、ASCII セーフな転送のために Base64 エンコードする。 パイプライン
URL エンコード後 Base64 二重エンコード
URL エンコードし、API ペイロードの二重エンコードのために Base64 エンコードする。 パイプライン
ネストされた URL パラメータのデコード(Base64 JSON)
URL エンコード Base64 JSON を運ぶ URL パラメータを可読なフォーマット済み JSON に展開する。 パイプライン
UUencode 後 Base64 エンコード
テキストを UUencode し、その後結果を Base64 エンコードして二重エンコードする。 パイプライン
UUID 生成と Base64 エンコード
UUID を生成し、コンパクトな保存のために Base64 エンコードする。 パイプライン