JA

Base64 エンコーダー / デコーダー

Base64エンコードとは?

Base64は、バイナリデータを64種類の印刷可能なASCII文字(大文字A–Z(26文字)、小文字a–z(26文字)、数字0–9(10文字)、プラス(+)とスラッシュ(/)、パディングとしてイコール(=))を使って表現するバイナリ-テキスト変換方式です。テキストベースのプロトコルで生のバイナリデータが破損する恐れがある場合に安全に転送するために設計されました。今日ではWeb開発のあらゆる場所で見られます:CSSに埋め込まれたデータURIイメージ、Basic Authヘッダー、JWTトークン、MIMEメール添付ファイル、バイナリコンテンツを含むAPIペイロードなどです。

現代のWeb開発でBase64が最も目に見える形で使われているのは、データURIフォーマットです:data:image/png;base64,... — HTMLやCSSに追加のHTTPリクエストなしで画像を直接埋め込む方法で、小さなアイコンやインライン背景に便利です。JWT(JSON Web Token)はヘッダーとペイロードのセクションにBase64url(+を-、/を_に置き換えた変形)エンコードを使用しています。Basic HTTP認証はAuthorizationヘッダーでBase64エンコードされた認証情報を送信します。APIレスポンスのBase64を認識してデコードする能力は、開発者にとって基本的なデバッグスキルです。

重要:Base64はエンコードであり、暗号化ではありません。鍵やパスワードなしに誰でもBase64をデコードできます——機密性はゼロです。機密データの保護にBase64を使用しないでください。Base64はデータサイズを約33%増加させます:3バイトのバイナリが4つのBase64文字になります。このサイズの引き換えは、エンコードされたデータがテキストベースのあらゆるチャンネルで安全に転送できるため許容されます。このツールは標準Base64(RFC 4648)に対応しています。すべてのエンコードとデコードはブラウザ内でローカルに実行され、サーバーに送信されることはありません。

よくある質問

Base64エンコードとは何ですか?
Base64は64種類の印刷可能なASCII文字(A-Z、a-z、0-9、+、/)を使ってバイナリデータを文字列に変換します。HTTPヘッダー、メール、JSONなどテキストベースのシステムでバイナリデータを破損なく安全に転送できるようにします。
テキストをBase64にエンコードするにはどうすればいいですか?
入力エリアにテキストを貼り付け、「エンコード」を選択するとBase64の出力が即座に表示されます。コピーボタンをクリックして、コードや設定ファイルで使用するためにクリップボードにコピーできます。
Base64は何に使われますか?
Base64はCSSへのデータURIとしての画像埋め込み、JWTトークンのペイロードエンコード、MIMEエンコードによるメール添付ファイルの送信、JSON APIレスポンスのバイナリデータエンコード、Basic HTTP認証情報のエンコードに使用されます。
Base64は暗号化の一種ですか?
いいえ。Base64は純粋なエンコード方式であり、鍵なしで完全に元に戻せます。Base64エンコードされたデータを受け取った人は誰でも即座にデコードできます。パスワードや個人データなどの機密情報の保護にBase64を使用しないでください。
Base64の出力が==や=で終わるのはなぜですか?
=の文字はパディングです。Base64は3バイトを4文字にエンコードします。入力の長さが3の倍数でない場合、最後のグループを補完するために1〜2個の=パディング文字が追加されます。
Base64の出力は元のデータより何倍大きくなりますか?
Base64の出力は元のデータより約33%大きくなります。3バイトの入力が4文字の出力になるため、1MBのバイナリファイルはBase64エンコード後に約1.33MBになります。
標準Base64とBase64urlの違いは何ですか?
標準Base64は+と/の文字を使いますが、これらはURLで特殊な意味を持ちます。Base64urlは+を-に、/を_に置き換え、URLやファイル名でそのまま使用できます。JWTはヘッダーとペイロードにBase64urlを使用しています。