Base64 エンコードとデコードのしくみ
Base64 エンコードでできること
Base64 は、印字可能な 64 種類の文字だけでデータを表現する方式です。使う文字は A〜Z の大文字と小文字、数字の 0〜9、そして記号の + と / です。このツールは入力または貼り付けたテキストをこの文字集合で書き直し、逆方向も同じように処理します。Base64 文字列を貼り付ければ、元のテキストを復元します。
モード切り替えボタン一つでエンコードとデコードを行き来でき、ページを再読み込みせずに双方向へ切り替えられます。操作するとすぐに結果が表示され、そのままコピーできます。
具体的な例
Base64 は 3 バイトずつまとめて処理します。8 ビットのバイト 3 つを 6 ビットのかたまり 4 つに組み直し、それぞれのかたまりが文字集合の 1 文字に対応します。たとえば Man という語では、そのバイト列が T、W、F、u の 4 文字に対応し、Man は TWFu にエンコードされます。
入力の長さが 3 の倍数でないときは、= を 1 つまたは 2 つ埋め草として付け足します。たとえば Hello World は SGVsbG8gV29ybGQ= にエンコードされ、末尾の = は最後のグループを埋めるためのパディングが必要だったことを示します。
使いどころ
Base64 は、プレーンテキストではないデータを、テキストしか通せない経路で運ぶための定番の手段です。JSON Web Token(JWT)の一区画をデコードしてクレームを確認したり、HTTP Basic 認証ヘッダーに入った資格情報を読み取ったり、Cookie や設定ファイル、API レスポンスから取り出した値の中身を確かめたりできます。
逆にエンコードすると、小さな画像を data URI として HTML や CSS に直接埋め込んだり、ほぼバイナリの内容をプレーンテキストが前提の場所へ貼り付けても、途中で壊さずに済みます。
注意点とエッジケース
テキストはエンコード前に UTF-8 として扱うため、アクセント付き文字や CJK 文字、絵文字も往復で壊れず元のまま戻ります。デコードではまず入力を検証し、Base64 の文字集合に含まれない文字が混じっていたり、パディングが崩れていたりする文字列は、でたらめな結果を返す代わりに明確なエラーとして弾きます。
このツールは + と / を使う標準の文字集合を採用しています。これらを - と _ に置き換える URL セーフ版は、近い方式ではありますが別物です。Base64 はエンコードであって暗号化ではない点にも注意してください。それ自体は何も隠さず、結果は誰でも元に戻せます。