Base64エンコード・デコードの使い方
- テキスト欄に文章を入力すると、右側のBase64欄にエンコード結果がすぐに表示されます。
- 反対にBase64欄に値を貼り付けると、左側に元のテキストが表示されます。
- 画像やPDFは下のファイル欄にドロップすると、data URIとBase64文字列を作成します。
- 画像・ファイルを含むBase64は、Base64をファイルとして保存ボタンで元のファイルに戻せます。
Base64エンコードとは?
Base64は、画像やファイルなどのバイナリデータや日本語などの文字を、英大文字・小文字、数字、+、/ の64種類の文字だけで表す方式です。メールの添付ファイル、HTML・CSSに画像を直接埋め込むdata URI、JSONでファイルをやり取りするAPI、ログイン認証のヘッダー(Basic認証)などで広く使われています。
3バイトを4文字に置き換えるため、結果は元のデータより約33%大きくなります。長さを4の倍数にそろえるため、末尾に「=」が0~2個付きます。
Base64は暗号化ではありません。誰でも簡単にデコードできるため、パスワードや個人情報を守る目的で使ってはいけません。
日本語のBase64変換結果がサイトによって違う理由
Base64は文字ではなくバイトを変換します。同じ「あ」でも、UTF-8では3バイトで44GC、Shift_JISでは2バイトでgqA=となり、結果が異なります。Webや多くのAPIはUTF-8を使うため、このツールもUTF-8で変換します。
デコードして文字化けする場合は、元データがShift_JISやEUC-JP、ISO-2022-JP(古い日本語メールで使われた文字コード)であるか、テキストではないファイルである可能性が高いです。
URL-safe Base64とdata URI
通常のBase64で使う+、/、=はURLの中で特別な意味を持つため、そのまま使うと不具合の原因になります。URL-safe Base64は + を - に、/ を _ に置き換え、末尾の = を省略します。JWTトークンが代表的な例です。
data URIはdata:image/png;base64,iVBOR...のようにファイル形式とBase64をまとめて書き、別ファイルを用意せずにHTMLやCSSへ画像を直接埋め込む方法です。小さなアイコンならリクエスト数を減らせますが、大きな画像は容量が約33%増えるため、通常のファイルとして置くほうが適しています。
Base64エンコード後のサイズの計算方法
Base64の結果の長さは4 × ⌈元のバイト数 ÷ 3⌉文字です。3バイトが4文字になるので、約4/3倍に増えます。
- 元データ3バイト → 4文字
- 元データ100KB → 約133KB
- 元データ1MBの画像 → 約1.33MB
JWTトークンはドット(.)で区切られた3つの部分のうち、真ん中がURL-safe Base64でエンコードされたJSONです。真ん中の部分だけを貼り付ければ中身を読めますが、署名の検証は行わないため、トークンが信頼できるかどうかは判断できません。
使用上の注意
- テキストの変換もファイルの変換も、すべてブラウザ内で処理されます。
- ファイルは5MB以下を推奨しています。20MBを超えるファイルは変換できません。
- Base64に使えない文字(スペース以外の記号や全角文字など)が含まれているとエラーになります。コピー時に余計な文字が入っていないか確認してください。