Base64テキストエンコーダー

ステップ 1 / 333%

入力

Base64は、非ASCII文字を含むテキストを、印字可能なASCIIを求めるシステムで扱える形にします。このツールはブラウザー内だけで動作し、RFC 4648に従ってUTF-8テキストをBase64へ変換するか、Base64を有効なUTF-8テキストへ戻します。URLセーフ方式とパディングも選べます。バイナリーデータにはファイル用またはバイナリー用のデコーダーを使用してください。

Base64テキストエンコードの仕組み

  1. 1

    テキストを貼り付ける

    標準ではUTF-8として解釈されます。各文字はまずUTF-8のバイト列になります。

  2. 2

    方向を選ぶ

    テキストからBase64へエンコードするか、Base64からテキストへデコードします。

  3. 3

    方式を選ぶ

    標準(`A-Z a-z 0-9 + /`)またはURLセーフ(`+`と`/`を`-`と`_`に置換)を選びます。エンコード時はパディング(`=`)の有無も切り替えられます。

  4. 4

    結果をコピー

    Base64またはパディングなしBase64URLを求める形式でのみ使用してください。テキストを変換するだけでは、完全なJWTや認証ヘッダーの作成、検証にはなりません。

具体例

単語caféをエンコードしてみます。

  1. UTF-8エンコーディング: 63 61 66 C3 A9(5バイト。éはUTF-8では2バイトになります)
  2. 3バイトずつのまとまりに分割: 63 61 66 | C3 A9
  3. 3バイトごとに4つのBase64文字へ変換: Y 2 F m | w 6 k =
  4. 最終結果: Y2Fmw6k=

URLセーフなBase64

標準のBase64は+/を使いますが、これらはURLやファイル名では予約された意味を持ちます。

  • +はフォーム形式のクエリーをデコードするときに空白になる場合があります
  • /はURLのパス区切りとして解釈されます

URLセーフなBase64(RFC 4648 第5節)は、これらを-_に置き換えます。オフにしない限り=パディングは残るため、対象形式がパディングなしを要求する場合は明示的にオフにしてください。

パディング

Base64の出力は4文字ずつのブロックにまとめられます。入力の長さが3バイトの倍数でない場合、最後のブロックは4文字を満たすように=でパディングされます。

入力バイト数 出力 パディング
1 4 ==
2 4 =
3 4 (なし)

Base64URLでエンコードされたJWTセグメントなど、一部の形式はパディングを省略します。このツールは、パディング付き入力と正しく省略した入力の両方を受け付けます。

よくある間違い

  • Base64を暗号化だと思い込む。 これは暗号化ではありません。誰でもBase64をデコードでき、何も隠せません。
  • UTF-8を忘れる。 「café」をLatin-1でエンコードすると、UTF-8とは異なるバイト列になります。受け取り側の想定が分からない限り、UTF-8を使ってください。
  • 空白を含んだまま貼り付ける。 RFC 4648のデコーダーは既定でアルファベット外の文字を拒否します。MIMEなど参照元の形式が許可する場合だけ、ASCIIの空白、タブ、改行、改ページを受け付けるこのツールのオプションを有効にしてください。

よくある質問

いいえ。Base64はエンコーディングであり、暗号化ではありません。aGVsbG8=はどのBase64デコーダーでも「hello」に戻ります。秘匿性が必要なら、先に暗号化し、その暗号文を転送用にBase64化してください。

Base64は入力3バイトを出力4文字で表すため、変換後の長さは約33%増えます。パディングで増えるのは最大2文字です。

Base64URLは標準Base64の+/の代わりに-_を使います。パディングは別の設定です。受け取り側がパディングなしを求める場合はオフにしてください。

標準Base64をクエリー値にする場合はパーセントエンコードが必要です。Base64URLは+/を避けます。受け取り側が=を認めない場合はパディングもオフにしてください。

関連ツール