Base64 エンコード/デコード

Base64 テキストのエンコードとデコード

0 -> 0
入力
出力

ツール説明

Base64 エンコード/デコードについて

Base64 エンコーダー/デコーダーは UTF-8 テキストを Base64 に変換し、Base64 を読みやすいテキストに戻します。

標準 Base64 と URL-safe Base64 に対応し、不正な入力を検証し、変換はブラウザー内で行われます。

Base64 Encoder/Decoder の使い方

  1. 通常の UTF-8 テキストを貼り付け、Encode を押して Base64 string を作ります。
  2. Base64 値を貼り付け、Decode を押して読みやすいテキストに戻します。
  3. URL、トークン部分、ファイル名のような field に入れる場合は URL-safe Base64 を有効にします。
  4. 出力を次の入力として使う場合は Swap を使います。

よくある利用場面

  • デバッグ中にトークン部分、設定値、API ペイロードをデコードする。
  • 短いテキストを Base64 にエンコードし、テストデータやドキュメントの例に使う。
  • 他サービスへ送る前に、コピーした Base64 値が有効か確認する。
  • Web トークンや URL パラメーターで standard と URL-safe 形式を変換する。

Base64、URL-safe Base64、パディング

Base64 はバイトを印字可能な文字で表します。これはエンコード形式であり encryption ではないため、テキストがあれば誰でもデコードできます。

  • 標準 Base64 は英字、数字、プラス記号、スラッシュ、および省略可能な等号パディングを使います。
  • URL-safe Base64 は plus を hyphen に、slash を underscore に置き換え、URL で扱いやすくします。
  • Padding: 末尾の等号はバイト長の整列に使われます。一部の URL-safe 形式では省略されます。
  • UTF-8 テキスト: 英語以外の文字はまずバイトへエンコードされ、それから Base64 で表されます。

Base64 エンコード/デコードのよくある質問

Base64 は encryption ですか?
いいえ。Base64 は可逆エンコードであり暗号化ではありません。デコードできる人には内容が見えます。
Decode が失敗するのはなぜですか?
無効な文字、欠けたバイト、URL-safe モードの違い、コピーした空白文字が原因のことがあります。
URL-safe Base64 はいつ使いますか?
エンコード済みの値を URL、JWT 形式のトークン部分、filenames に入れるとき、plus や slash の問題を避けるために使います。
Base64 で data は小さくなりますか?
いいえ。バイナリデータを printable テキストで表すため、通常は約 3 分の 1 大きくなります。
Base64 テキストはアップロードされますか?
いいえ。Encode とデコードはブラウザー内で実行され、wetool.site へ送信されません。

Base64 と URL エンコード

Base64 はバイトをテキストとして表すためのものです。URL エンコードは URL 内の文字を escape するためのものです。クエリ文字列に Base64 を入れるなら、URL-safe Base64 の方が扱いやすいです。

標準 Base64 と URL-safe Base64

Base64 が URL、JWT、ファイル名、フォームの入力欄に出るとき、よくある失敗は文字セットの違いとパディングです。

  • 標準 Base64 は + と / を使うため、クエリ文字列に入れる前に URL エンコードが必要になることがあります。
  • URL-safe Base64 は - と _ を使い、JWT、OAuth state、短いトークン、ファイル名のような項目でよく使われます。
  • Trailing = padding は protocol により保持または省略されます。Decode が失敗したら長さを 4 の倍数に補う必要があるか確認します。

Base64 のセキュリティ境界

Base64 はエンコードであり暗号化ではありません。Binary や UTF-8 テキストを印字可能な文字にしますが、内容は隠しません。

  • Base64 文字列を持つ人は誰でもデコードできるため、シークレット、パスワード、秘密鍵を保護済みのデータと扱わないでください。
  • JWT のペイロード、Basic 認証のヘッダー、設定値をデコードするときは、ログやチケットに貼る前に機微な内容だと仮定します。
  • 機密性には本来の暗号化、真正性には署名、完全性にはハッシュを使い、Base64 は表現形式と考えます。