Base64エンコード/デコード
テキストとBase64を相互変換。日本語(UTF-8)・URLセーフ形式に対応。ブラウザ内処理で安全。
形式
処理はブラウザ内で完結し、入力内容は外部に送信されません。
このツールの使い方
- 変換したい文字列を入力する
- 「Base64にエンコード」または「テキストにデコード」を押す
- 必要に応じて標準/URLセーフ形式を切り替える
- 結果をコピーする(「入替」で入力と結果を入れ替え可能)
Base64の仕組み — なぜ約1.33倍になるのか
Base64は、任意のバイト列を A-Z a-z 0-9 + / の64種類の文字だけで表す方式です。3バイト(24ビット)を6ビットずつ4つに区切り、4文字に変換します。3バイトが4文字になるため、データ量は約 4/3=1.33倍 に増えます。 端数は末尾の =(パディング)で調整します。
"Man" → 01001101 01100001 01101110 → 010011 010110 000101 101110 → TWFu
バイナリを「テキストしか通れない経路」に安全に載せるための仕組みで、圧縮でも暗号化でもありません。
よくある用途
- ・データURI:小さな画像やフォントをHTML/CSSに
data:image/png;base64,...として埋め込み、HTTPリクエストを減らす - ・Basic認証:
Authorization: Basicヘッダのユーザー名:パスワードをBase64化(=暗号化ではないのでHTTPS必須) - ・メール(MIME):添付ファイルや日本語本文をテキスト経路で送るためにエンコード
- ・JWT:ヘッダ・ペイロードをURLセーフBase64で連結(中身は誰でもデコード可能)
標準形式とURLセーフ形式の違い
| 項目 | 標準 | URLセーフ |
|---|---|---|
| 62番目の文字 | + | - |
| 63番目の文字 | / | _ |
| 末尾のパディング | = を付ける | 省略することが多い |
| 主な用途 | メール・データURI | URL・クエリ・JWT・ファイル名 |
+ や / はURLで特別な意味を持つため、URLに載せるときはURLセーフ形式を使います。このツールは両形式を切り替えられます。
つまずきやすいポイント
- ・暗号化ではない:Base64は誰でも元に戻せます。パスワードやトークンの「保護」にはならず、通信の秘匿にはHTTPSや暗号化を使ってください。
- ・日本語の文字化け:マルチバイト文字はまずUTF-8のバイト列にしてからBase64化する必要があります(このツールは自動でUTF-8処理します)。素朴な
btoa()は日本語で例外になります。 - ・サイズが増える:約1.33倍になるため、大きなファイルをデータURIで埋め込むとHTMLが重くなります。大画像は通常のファイル参照が有利です。
- ・改行の混入:メール用のBase64は76文字ごとに改行が入ることがあり、そのままデコードすると失敗する場合があります。
言語別のエンコード例
| JavaScript | btoa(unescape(encodeURIComponent(s))) |
| Python | base64.b64encode(s.encode()) |
| PHP | base64_encode($s) |
| Linux CLI | echo -n 'text' | base64 |
関連ツール
広告