Base64に出会う場面
メールの添付ファイル、HTMLやCSSのデータURI、HTTPのBasic認証のヘッダー、JWTの各部分、Kubernetesのシークレット、JSONのバイナリフィールドなど、どれもBase64のテキストでデータを運んでいます。中身を見たいときはデコードし、普通のテキストしか入れられない場所に値を貼りたいときはエンコードしましょう。
テキストをBase64にエンコード、またはデコード。日本語や絵文字も、トークンに使われるURLセーフなBase64も扱え、画像をデータURIに変換することもできます。
ここに結果が表示されます
メールの添付ファイル、HTMLやCSSのデータURI、HTTPのBasic認証のヘッダー、JWTの各部分、Kubernetesのシークレット、JSONのバイナリフィールドなど、どれもBase64のテキストでデータを運んでいます。中身を見たいときはデコードし、普通のテキストしか入れられない場所に値を貼りたいときはエンコードしましょう。
デコーダーは、標準のBase64も、JWTのようなURLセーフなBase64(+と/の代わりに-と_)も、=のパディングがあってもなくても、複数行に分かれていても読み込めます。テキストはUTF-8として読むので、日本語、アクセント、絵文字もそのまま戻ります。中身がテキストではなくファイル(画像、PDFなど)の場合は、そう表示されます。Base64は暗号化ではなくエンコードなので、誰でもデコードできます。
Base64は、3バイト(24ビット)ずつのまとまりを、6ビットずつの4つのグループに分けます。6ビットのグループは、それぞれ64種類の表示可能なASCII文字のどれかに対応します。入力の長さが3で割り切れないときは、パディングの文字(=)が追加されます。
たとえば「Hi」というテキスト(2バイト:0x48 0x69)は、Base64では「SGk=」になります。=は、最後のグループを埋めるために1バイトのパディングが必要だったことを示しています。
標準のBase64は、URLで特別な意味を持つ+と/の文字を使います。Base64urlは、これらをそれぞれ-と_に置き換えているので、追加のエンコードなしで、URLやファイル名に安全に使えます。
たとえばJWTトークンはBase64urlを使っています。URLやファイル名に入れる値をエンコードするときは「URL用」をオンにしてください。結果は-と_を使い、末尾の=を省きます。デコードは、どちらの形式も設定なしで読み取れます。
テキストを変換するなら「テキスト ↔ Base64」、画像ファイルをデータURIにするなら「画像をBase64に」を選びます。
テキストモードでは、テキストかBase64の文字列を貼り付けます。画像モードでは、画像ファイルをドラッグ&ドロップするか、クリックして選びます。
入力に合わせて結果が表示されるので、「コピー」ボタンでコピーします。画像の場合は、データURI全体か、Base64の文字列だけをコピーできます。
テキストをBase64にエンコード、またはBase64をテキストにデコードできます。UTF-8(アクセント、絵文字、あらゆる言語)に完全対応し、画像をデータURIに変換することもできます。
デコーダーは、標準のBase64もURLセーフなBase64(JWTのような)も、=のパディングがあってもなくても、複数行に分かれていても読み込め、中身がテキストではなくファイルの場合はそう教えてくれます。
かんたん・すばやいファイルやデータが端末の外に出ることはありません。処理はすべてブラウザ内で行われます。
認証ヘッダーや秘密情報はBase64になっていることがよくあります。ここでデコードしても、どこにも送られません。
ブラウザ内で完結Base64エンコード・デコードツールについて知っておきたいこと