nicetool.dev logo

BASE64 エンコーダー

すべての処理はブラウザ内で行われます。データが外部に送信されることはありません。

入力データ
変換結果

Base64とは?

Base64は、バイナリデータをASCII文字列形式で表現する「バイナリテキスト変換エンコード方式」の一種です。具体的には、データを64進数(radix-64)に変換し、テキストデータしか扱えない通信経路でも画像やファイルを安全に送信できるようにします。

Base64の仕組み

Base64は、入力バイナリデータを24ビット(3バイト)のグループに分割します。その後、これらを4つの6ビットのチャンクに再分割し、それぞれの値をBase64の対応表(A-Z, a-z, 0-9, +, /)に割り当てます。データ長が3で割り切れない場合は、末尾に「=」記号がパディングとして追加されます。

3 Bytes (24 bits) → 4 Chars (6 bits each)

エンコードと暗号化の違い

よくある誤解ですが、Base64はデータを保護する「暗号化(Encryption)」ではありません。これは単なる「エンコード(符号化)」であり、鍵なしで誰でも簡単に元のデータに戻すことができます。パスワードなどの機密情報の保護には絶対に使用しないでください。

Base64 ≠ Password Protection

主な使用例

  • Data URIスキーム:画像をHTMLやCSSに直接埋め込み、ページの読み込み速度を向上させる。
  • メール添付(MIME):テキストベースのメールプロトコルでバイナリファイルを安全に送信する。
  • Web API:JSONペイロード内にバイナリデータ(PDFや画像など)を含めて送信する。

セキュリティについて

Nicetool.devは「ローカルファースト」で動作します。他の多くのツールとは異なり、エンコードとデコードの処理はすべてお使いのブラウザ内で行われます。

データが当社のサーバーに送信されることは一切ありません。

Base64変換の使い方

  1. 1

    テキストを Base64 に変換するなら Encode、Base64 文字列を読めるテキストに戻すなら Decode を選びます。

  2. 2

    入力を貼り付けます。アクセント付き文字や絵文字、日本語を含む場合は文字セットを UTF-8 のままにし、英語のみの古いデータに限り ASCII を選びます。

  3. 3

    Live Mode をオンにすると入力に合わせて結果が更新されます。大きなデータを扱うときはオフにして GO! を押してください。

  4. 4

    結果をコピーします。デコードに失敗した場合は、Base64 以外の文字が含まれているか文字列が途中で切れている可能性があるので、全体をコピーできているか確認しましょう。

活用例

HTTP Basic 認証

ユーザー admin、パスワード s3cret の Authorization ヘッダーは "Basic " に "admin:s3cret" の Base64、つまり YWRtaW46czNjcmV0 を続けたものです。ログのヘッダーをデコードすればどのユーザーが送られたかわかります。

Kubernetes の Secret

Secret マニフェストの値は Base64 でエンコードされています。デコードしてデータベース URL を確認したり、新しい値をエンコードして YAML に貼り付けたりできます。

データ URI

小さなアイコンは data:image/png;base64,... の形で CSS や HTML に埋め込めるので、リクエストを1つ減らせます。

トークンやペイロードの調査

Webhook の署名、メールの添付ファイル(MIME)、JWT の一部はいずれも Base64 です。連携のデバッグではまずデコードから始めることがよくあります。

よくある質問

Base64 は暗号化ですか?+

いいえ。Base64 は鍵なしで誰でも元に戻せるエンコード方式です。バイナリデータをテキストの経路で安全に送るためのもので、内容を隠したり保護したりはしません。秘密情報には本物の暗号化を使ってください。

なぜ出力が入力より長くなるのですか?+

Base64 は3バイトを4文字で表すため、結果は約33%大きくなります。末尾の = は最後のグループを埋めるパディングです。

Base64URL とは?+

+ を - に、/ を _ に置き換え、通常は末尾の = を省く変種で、URL やファイル名に使えます。JWT は Base64URL を使います。

アクセント付き文字が化けるのはなぜ?+

別の文字セットでエンコードされた可能性があります。現在のほとんどのシステムは UTF-8 なので、両側で UTF-8 を選べば é や日本語が正しく保たれます。