テキストとBase64文字列を相互変換
テキストや画像をBase64形式にエンコード・デコードする無料ツールです。メール添付のエンコード、データURIスキームでの画像埋め込み、APIでのバイナリデータ送受信など、さまざまな開発場面で活用できます。
Base64は、バイナリデータをテキスト形式(ASCII文字のみ)で表現するためのエンコード方式です。HTMLやCSSに小さな画像を直接埋め込む「データURI」、メールの添付ファイル(MIME)、JWTトークンのペイロード部分など、テキストベースのプロトコルでバイナリデータを扱う必要がある場面で広く使われています。
Base64エンコードするとデータサイズが約33%増加します。大きなファイルのエンコードには適していません。すべてブラウザ内で処理され、データがサーバーに送信されることはありません。
Base64は、画像や音声などのバイナリデータを、64種類の英数字・記号(A〜Z、a〜z、0〜9、および「+」「/」の計64文字)だけで表現するエンコード方式です。テキストしか安全に扱えない仕組みの中で、バイナリデータを文字列として運ぶために考案されました。末尾の長さ調整にはパディング記号「=」が使われます。
主な用途は3つあります。1つ目は、HTMLやCSSに小さな画像を直接書き込む「データURI(Data URI)」での埋め込みです。data:image/png;base64, のようなプレフィックスにBase64文字列を続けることで、外部ファイルなしで画像を表示できます。2つ目は、電子メールの添付ファイル(MIME)のように、テキストベースのプロトコルでバイナリを送る場面です。3つ目は、APIやJWTのように、データを一旦テキスト化して受け渡しする用途です。
注意したいのは、Base64は「暗号化」ではない点です。変換ルールは完全に公開されており、鍵を必要とせず誰でもデコードして元のデータに戻せます。そのため機密情報の保護には使えません。また、3バイトを4文字に変換する仕組み上、エンコード後のサイズは元データより約33%大きくなります。テキスト化のための変換であり、データの圧縮にはならない点も覚えておくとよいでしょう。
代表的な文字列をBase64にエンコードした例です。値はUTF-8でバイト列に変換してから符号化したもので、このツールの変換結果と一致します。
| 元の文字列 | バイト数 | Base64(エンコード結果) |
|---|---|---|
| A | 1 | QQ== |
| AB | 2 | QUI= |
| ABC | 3 | QUJD |
| Man | 3 | TWFu |
| Hello | 5 | SGVsbG8= |
| Base64 | 6 | QmFzZTY0 |
| あ | 3 | 44GC |
| こんにちは | 15 | 44GT44KT44Gr44Gh44Gv |
「=」の数に注目すると、元データのバイト数が3の倍数のとき(ABC、Man、こんにちは)はパディングが付かず、余りが1バイトなら「==」、2バイトなら「=」が付きます。日本語1文字「あ」はUTF-8で3バイトのため、ちょうど4文字「44GC」になります。