Base64 エンコード・デコード
ブラウザ内処理ファイルはアップロードされませんこの処理はブラウザ内で完結します。ファイルはどこにも送信されません。
テキストは入力しながら双方向に変換。ファイルは Base64 とデータURLに変換でき、逆に貼り付けてファイルとして保存もできます。日本語や絵文字も壊れず、デコードに失敗したときは何行目の何文字目が不正かまで表示します。
入力テキスト
同じデータの、別の書き方
出力Base64
まだ何もありません
URLやファイル名、JWTなどに埋め込むときの形式です。デコード側は両方の形式を自動で受け付けます。
Base64 で使われる64文字
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
3バイトを6ビットずつ4つに割り、この表の何番目かで書き直します。= はデータではなく、長さを4の倍数にそろえるための詰め物です。
関連するツール
ツール一覧特長
- 日本語・絵文字に対応
- ブラウザ標準の btoa は Latin-1 しか受け付けず、日本語を渡すとエラーになります。ここでは UTF-8 のバイト列に変換してから符号化するため、日本語も絵文字もそのまま往復します。
- エラー位置を表示
- デコードに失敗した場合は、何行目の何文字目のどの文字が不正かを表示します。全角スペースや、チャットアプリが置き換えた引用符などをすぐ特定できます。
- 改行やURLセーフ形式もそのまま貼れる
- メールで76文字ごとに折り返された Base64 も、JWT などで使われるURLセーフ形式(-_、パディングなし)も、整形せずにそのまま貼り付けて復号できます。
使い方
変換するものと向きを選ぶ
上の切り替えで「テキスト」か「ファイル」を選び、その隣で向きを選びます。テキストなら「テキスト → Base64」か「Base64 → テキスト」、ファイルなら「ファイル → Base64」か「Base64 → ファイル」です。
入力する
左側にテキストを貼り付けるか、ファイルを選びます。右側に結果がそのまま出ます。エンコードのときは、URLセーフ形式にするか、末尾の = を付けるかも選べます。
結果を持ち出す
コピーのほか、「テキストとして保存」「ファイルとして保存」で書き出せます。真ん中の「入れ替え」を押すと、結果が入力側に移って向きが反転するので、元に戻ることも確かめられます。
Base64 の基礎
- Base64 は暗号化ではありません
- 鍵がなく、誰でも元に戻せるため、内容の保護にはなりません。パスワードやAPIキーを Base64 にして設定ファイルに書いても、隠したことにはならない点に注意してください。Base64 の目的は、バイナリをテキストしか通らない経路に通すことです。
- なぜ約1.33倍になるのか
- 3バイト(24ビット)を6ビットずつ4文字に割り当てる方式のため、必ず 4/3 = 約133%になります。パディングの分だけさらに数バイト増えます。画像をデータURLで埋め込むと、転送量は元の約1.33倍になります。
- URLセーフ形式はいつ必要か
- 標準の Base64 が使う + と / は、URLのクエリ文字列やファイル名では別の意味を持ちます。そこで + を -、/ を _ に置き換えたのが URLセーフ形式です。JWT の各パートはこの形式で、末尾のパディング = も省略されています。
- データURLの使いどころと限界
- data:image/png;base64,... の形にすると、画像を外部ファイルにせず HTML や CSS に直接埋め込めます。小さなアイコンではリクエストが1回減って有利ですが、大きな画像では転送量が1.33倍になるうえキャッシュも効かなくなるため、たいてい逆効果です。
よくある質問
- 日本語や絵文字はそのまま戻りますか?
- 戻ります。UTF-8 として符号化しているため、往復しても内容は変わりません。ただし相手のシステムが別の文字コード(Shift_JIS など)を前提にしている場合は、そちらでは正しく読めません。
- メールからコピーした Base64 に改行が入っています
- そのまま貼り付けてください。改行・スペース・タブはすべて無視して復号します。多くのメール転送方式が76文字ごとに折り返すため、これは異常ではありません。
- どのくらいのサイズのファイルまで扱えますか?
- 25MBまでです。変換中は元データ・中間データ・Base64 文字列がすべてメモリ上に同時に存在するため、上限を設けています。また Base64 が非常に長い場合は画面表示を省略しますが、コピーと保存は通常どおり使えます。
- 貼り付けた内容やファイルは送信されますか?
- 送信されません。変換はすべてブラウザ内で行われ、ページを閉じれば消えます。ただし Base64 は暗号化ではないため、変換結果をどこかに貼る際は元の内容が読めることを前提にしてください。
- JWT の中身を見られますか?
- ドット(.)で区切られた2番目の部分を貼り付ければ、ペイロードのJSONが読めます。URLセーフ形式・パディングなしでも受け付けます。ただし署名の検証は行いません(内容の真正性は確認できません)。
スポンサーリンク