MCPで接続 →

計算を入力してください

公式

広告

結果

Base64出力
SGVsbG8=
UTF-8でエンコード
入力バイト数(UTF-8) 5
出力文字数 8

Base64エンコードとは?

Base64は、バイナリデータを印刷可能な64種類のASCII文字だけで表現する「バイナリ→テキスト変換」方式です。使用する文字は A-Za-z0-9 に加えて +/ の64文字。HTML/CSSに画像を直接埋め込むデータURI、メールにバイナリ添付を送るMIME、JSON Web Token(JWT)など、テキストしか通せない経路を介してバイナリデータを安全にやり取りしたい場面で広く使われています。このツールでは、入力したテキストをまずUTF-8のバイト列に変換し、そのうえでBase64にエンコードします。

このエンコーダーの使い方

入力欄にテキストを入力するか貼り付けて、実行するだけです。ツールがテキストをUTF-8バイト列に変換し、標準のBase64アルゴリズムを適用して、エンコード結果の文字列を返します。あわせて入力バイト数と出力文字数も表示します。

仕組み(変換のルール)

エンコーダーは入力バイトを3バイトずつ読み込みます。3バイト=24ビットを、6ビットずつ4つのかたまりに均等に分割。それぞれの6ビット値(0〜63)をアルファベット表のインデックスとして、1文字の出力に対応させます。入力の長さが3の倍数でない場合は、最後のグループにパディングを加えます。余りが1バイトのときは2文字+==、余りが2バイトのときは3文字+=1個となります。そのため出力の長さは常に

$$\text{Base64} = \operatorname{encode}_{64}\!\left(\text{Text}\right), \qquad L_{out} = 4 \left\lceil \frac{L_{in}}{3} \right\rceil$$

になります。

3つの8ビットバイトが4つの6ビットBase64文字に再編成される様子を示す図
Base64は3つの8ビットバイト(24ビット)を4つの6ビット単位に分割し、それぞれを1文字に対応させます。

具体例で見てみる

テキスト Man をエンコードしてみましょう。ASCIIバイトは77, 97, 110 → 2進数で 01001101 01100001 01101110。これを6ビットずつに区切ると、\(010011 = 19 \to T\)、\(010110 = 22 \to W\)、\(000101 = 5 \to F\)、\(101110 = 46 \to u\)。結果は TWFu です。入力3バイトに対して出力4文字、パディングなしとなります。

単語をテキストからバイト、ビット、Base64文字へと変換するステップの流れ
実例:テキストがバイトになり、6ビットのグループになり、最終的なBase64文字列になります。

よくある質問(FAQ)

出力の末尾に「=」が付くのはなぜ? 入力が3バイトの倍数でないとき、最後のグループを埋めるためのパディングです。これにより出力の長さが常に4の倍数に保たれます。

Base64でデータは暗号化される? いいえ。Base64は「エンコード」であって「暗号化」ではありません。誰でも簡単にデコードできます。バイナリをテキストとして安全に運べるようにするだけです。

出力が入力より大きくなるのはなぜ? 3バイトが4文字になるため、Base64ではデータ量が約33%増加します。

最終更新: