使い方
APIのレスポンスや設定ファイル、メールのヘッダーに並ぶ英数字の羅列をBase64 デコードしたいとき、このページならインストール不要ですぐに中身を確認できます。画面上部の「エンコード」「デコード」タブから目的の方を選び、入力欄に貼り付けると、下に結果がすぐ表示されます。
エンコードでは、漢字・ひらがな・カタカナはもちろん、絵文字や他の言語の文字もそのまま扱えます。内部ではUTF-8として処理するため、日本語が文字化けする心配はありません。デコードでは、手元の文字列をそのまま貼り付けてください。途中の空白や改行は自動的に無視され、URLセーフ形式の「-」「_」も受け付けます。不正な入力の場合は、意味の通らない結果ではなくエラーメッセージを表示します。結果はコピーボタンでクリップボードに送れます。
処理はすべて手元のブラウザ内で完結します。認証トークンや社内データを確認するときも、外部のサーバーに送信されることはありません。
Base64の仕組み
Base64は、バイナリデータを文字だけで表すための方式です。入力を3バイト(24ビット)ずつ区切り、6ビットずつ4つに分けます。6ビットは0〜63の数値になるので、それを英大文字・英小文字・数字・「+」「/」の64文字に対応させます。最後に1〜2バイト余った場合は、「=」を付けて長さをそろえます。
| 入力 | バイト数 | Base64 |
|---|---|---|
abc |
3 | YWJj |
あ |
3(UTF-8) | 44GC |
3バイトが4文字になるため、エンコード後のデータは元より約33%大きくなります。日本語はUTF-8で1文字3バイトが基本なので、ひらがな1文字がちょうど4文字のBase64になります。派生形のbase64urlは「+」を「-」に、「/」を「_」に置き換え、多くの場合「=」を省略します。URLやファイル名にそのまま入れられるようにするための工夫です。
大事な点として、Base64は暗号化ではありません。鍵もなく、内容を秘密にする働きもない、単なる表記の変換です。
活用シーンとヒント
Base64はWeb開発のさまざまな場面で登場します。データURIでは、data:image/png;base64, に続けて小さな画像をHTMLやCSSに直接埋め込めます。電子メールではMIMEの仕組みで添付ファイルを文字に変換して送っています。JSONは生のバイナリを扱えないため、APIでファイルをやり取りするときにJSONペイロードの中でBase64が使われることもよくあります。
HTTPのBasic認証ヘッダーでは「ユーザー名:パスワード」がBase64で書かれます。簡単に読み戻せるので、必ずHTTPSと組み合わせてください。またJWTはドットで区切られた3つのbase64urlの部分でできており、前の2つをデコードするとヘッダーとクレームの中身を読めます。
見分け方のコツとして、英数字と少数の記号だけで構成され、末尾が「=」や「==」で終わる文字列はBase64である可能性が高いです。デコードして読めない文字が出てくる場合は、元のデータが画像などのバイナリファイルだったと考えられます。