コンテンツへスキップ

A–Z a–z 0–9 + / = · base64url

Base64エンコード・デコード

Base64は、バイト列を64種類の印字可能な文字で表すテキスト形式です。"Hello"の5バイトはSGVsbG8=になります。テキストを入力するかファイルを選んでエンコードし、Base64を貼り付けるとテキストやダウンロードに戻せます。

処理はすべてこのタブ内で行われ、何もアップロードされません。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
テキストBase64パディングなしのBase64urlUTF-8のサイズ
HelloSGVsbG8=SGVsbG85 B
Hello, World!SGVsbG8sIFdvcmxkIQ==SGVsbG8sIFdvcmxkIQ13 B
GrüßeR3LDvMOfZQ==R3LDvMOfZQ7 B
€4oKs4oKs3 B
FB FF+/8=-_82 B
RFC 4648のテストベクター
入力Base64長さパディング文字
fZg==42
foZm8=41
fooZm9v40
foobZm9vYg==82
foobaZm9vYmE=81
foobarZm9vYmFy80

Base64をエンコード・デコードする手順

1

方向を選ぶ

テキストやファイルをBase64にするにはエンコード、Base64を元に戻すにはデコードを選びます。入れ替えボタンで、結果を逆方向の入力に移せます。

2

データを入力

テキストを入力または貼り付けるか、最大10 MBのファイルをドロップします。デコードでは、標準またはURL-safeの文字セットのBase64(=パディングの有無は問いません)か、データURIを貼り付けます。

3

結果をコピー

結果をコピーまたはダウンロードします。デコードしたバイト列がテキストでない場合は、先頭のバイトを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進数で表示され、分かればファイルの種類が示され、バイト列をダウンロードできます。