A–Z a–z 0–9 + / = · base64url
Base64エンコード・デコード
Base64は、バイト列を64種類の印字可能な文字で表すテキスト形式です。"Hello"の5バイトはSGVsbG8=になります。テキストを入力するかファイルを選んでエンコードし、Base64を貼り付けるとテキストやダウンロードに戻せます。
- Hello = SGVsbG8=
- Hello = SGVsbG8
- FB FF = +/8= = -_8=
処理はすべてこのタブ内で行われ、何もアップロードされません。Base64は暗号化ではなくエンコードです。誰でも元に戻せます。
Scanned by NortonTM Safe Web
概要
- 価格
- 料金なし
- アカウント
- 不要
- 規格
- RFC 4648 (Base64とBase64url)、RFC 2045 (MIME)、RFC 2397 (データURI)
- サイズの変化
- 3バイトごとに4文字
- 上限
- テキストまたはファイルで10 MB
- アップロード
- なし — テキストとファイルはブラウザーのタブ内にとどまります
Base64の例
以下の値はすべて、このページのエンコーダーが生成したものです。テキストは最初にUTF-8でエンコードされます。
| テキスト | Base64 | パディングなしのBase64url | UTF-8のサイズ |
|---|---|---|---|
| Hello | SGVsbG8= | SGVsbG8 | 5 B |
| Hello, World! | SGVsbG8sIFdvcmxkIQ== | SGVsbG8sIFdvcmxkIQ | 13 B |
| Grüße | R3LDvMOfZQ== | R3LDvMOfZQ | 7 B |
| € | 4oKs | 4oKs | 3 B |
| FB FF | +/8= | -_8 | 2 B |
| 入力 | Base64 | 長さ | パディング文字 |
|---|---|---|---|
| f | Zg== | 4 | 2 |
| fo | Zm8= | 4 | 1 |
| foo | Zm9v | 4 | 0 |
| foob | Zm9vYg== | 8 | 2 |
| fooba | Zm9vYmE= | 8 | 1 |
| foobar | Zm9vYmFy | 8 | 0 |
Base64をエンコード・デコードする手順
方向を選ぶ
テキストやファイルをBase64にするにはエンコード、Base64を元に戻すにはデコードを選びます。入れ替えボタンで、結果を逆方向の入力に移せます。
データを入力
テキストを入力または貼り付けるか、最大10 MBのファイルをドロップします。デコードでは、標準またはURL-safeの文字セットのBase64(=パディングの有無は問いません)か、データURIを貼り付けます。
結果をコピー
結果をコピーまたはダウンロードします。デコードしたバイト列がテキストでない場合は、先頭のバイトを16進数で表示し、分かる場合はファイルの種類を示し、バイト列をファイルとして保存できます。
Base64の仕組み
Base64(RFC 4648)は、入力を3バイト(24ビット)ずつのグループに分け、各グループを64文字の文字セット(A–Z、a–z、0–9、+、/)から選んだ6ビットずつ4文字で表します。そのため出力は入力より約3分の1大きくなります。入力が3バイトの倍数でない場合は、末尾に=を付けて4文字の倍数にそろえます。Helloの5バイトは8文字になり、末尾に=が1つ付きます。
同じRFCで定義されているBase64urlは、+を-に、/を_に置き換えるので、URLやファイル名の中でも安全に使えます。JWTなどの形式では=のパディングも省かれます。このページはどちらの文字セットも、パディングの有無にかかわらず読み取り、スペースと改行は無視します。テキストは最初にUTF-8に変換されるため、€は3バイトのE2 82 ACになり、Base64では4oKsになります。上限はテキストもファイルも10 MBです。
Base64の質問
テキストをBase64にエンコードするには?
エンコードモードでテキストを入力または貼り付けます。入力に合わせてBase64が表示され、HelloはSGVsbG8=になります。テキストは最初にUTF-8で書かれるため、ASCII以外の文字は複数バイトになります。€は3バイトで、4oKsになります。
Base64とBase64urlの違いは何ですか?
Base64urlは2文字を入れ替えます。+の代わりに-、/の代わりに_を使います。バイト列FB FFは、Base64では+/8=、Base64urlでは-_8=です。URL-safe形式はURL、ファイル名、JWT向けで、=のパディングを省くことがよくあります。
Base64の末尾に=が付くのはなぜですか?
パディングです。Base64は3バイトと4文字を1グループとして処理します。最後のグループが1バイトなら=2つで埋めます。fはZg==になります。2バイトなら=1つで埋めます。foはZm8=になります。3バイトの倍数なら不要です。fooはZm9vになります。
Base64は暗号化ですか?
いいえ。Base64は鍵のない可逆なエンコードで、誰でもデコードでき、データを守る働きはありません。バイナリデータを、メール、JSON、XML、データURIなどのテキストの中に安全に置けるようにするものです。
Base64にするとデータはどのくらい大きくなりますか?
約3分の1大きくなります。3バイトごとに4文字になるので、3000バイトは4000文字になります。76文字ごとの改行(MIME、RFC 2045)や64文字ごとの改行(PEM、RFC 7468)を入れると、さらに少し増えます。
デコードで「バイト列が有効なUTF-8テキストではない」と出るのはなぜですか?
Base64自体は正しいものの、中のバイト列がテキストではありません。画像、圧縮ファイル、その他のバイナリ形式の可能性があります。この場合、先頭の64バイトが16進数で表示され、分かればファイルの種類が示され、バイト列をダウンロードできます。