EfficTools Logo
EfficTools
Back to Blog
Base64

Base64エンコーディング完全ガイド:原理、応用、実践

E
EfficTools Team
December 5, 202410 min read

Base64エンコーディング完全ガイド:原理、応用、実践

Base64エンコーディングとは?

Base64は、バイナリデータをASCII文字列に変換するエンコーディング方法です。64個の印刷可能な文字(A-Z、a-z、0-9、+、/)を使用して、任意のバイナリデータを表現します。

なぜBase64が必要なのか?

コンピュータネットワークでは、多くのプロトコルがテキストデータの送信のみをサポートしています。これらのプロトコルを通じてバイナリデータ(画像、ファイルなど)を送信する必要がある場合、バイナリデータをテキスト形式に変換する必要があります。Base64はこの目的のために作成されました。

一般的な使用例

  • メール添付ファイル:MIMEプロトコルはBase64エンコーディングを使用してバイナリ添付ファイルを送信します
  • Data URL:HTML/CSSに小さな画像を埋め込む
  • JWTトークン:JSON Web TokenはBase64URLエンコーディングを使用します
  • API送信:JSONでバイナリデータを送信
  • Base64エンコーディングの原理

    Base64エンコーディングの基本原理は、3バイト(24ビット)のバイナリデータを4つの6ビットグループに分割し、各6ビットグループをBase64文字テーブルの対応する文字にマッピングすることです。

    エンコーディング手順

  • 入力データをバイナリに変換
  • 3バイトごとにグループ化
  • 各24ビットグループを4つの6ビットグループに分割
  • 各6ビットグループをBase64文字にマッピング
  • 最後のグループが3バイト未満の場合、=でパディング
  • JavaScriptでBase64を使用する

    ``javascript

    // エンコーディング

    const encoded = btoa('Hello, World!');

    console.log(encoded); // SGVsbG8sIFdvcmxkIQ==

    // デコーディング

    const decoded = atob('SGVsbG8sIFdvcmxkIQ==');

    console.log(decoded); // Hello, World!

    `

    Unicode文字の処理

    btoaはLatin1文字のみを処理できるため、Unicodeを処理するには最初にUTF-8エンコーディングが必要です:

    `javascript

    // Unicodeをエンコード

    const encodeUnicode = (str) => {

    return btoa(encodeURIComponent(str).replace(

    /%([0-9A-F]{2})/g,

    (_, p1) => String.fromCharCode(parseInt(p1, 16))

    ));

    };

    // Unicodeをデコード

    const decodeUnicode = (str) => {

    return decodeURIComponent(

    atob(str).split('').map(

    c => '%' + c.charCodeAt(0).toString(16).padStart(2, '0')

    ).join('')

    );

    };

    ``

    EfficToolsでBase64エンコーディング/デコーディングを行う

    コードを書きたくない場合は、Base64エンコーディング/デコーディングツールを直接使用できます。これは以下をサポートします:

    • テキストからBase64へのエンコーディング
    • Base64からテキストへのデコーディング
    • Unicode文字の完全サポート
    • ファイルのBase64エンコーディング

    まとめ

    Base64は、Web開発において広く応用されている重要なエンコーディング方法です。その原理と使用方法を理解することは、さまざまなデータ送信シナリオを処理するのに非常に役立ちます。

    Base64エンコーディングチュートリアルJavaScript
    Share this article