Base64 エンコーダー

テキストや 16 進バイトをブラウザー内で Base64 にエンコードします。絵文字や日本語を含む UTF-8、URL セーフ、パディングの有無、76 文字折り返しに対応。

24 文字 · 28 バイト(UTF-8)

0 文字 · 0 バイト(UTF-8)

すべてブラウザ内で実行されます。データがアップロードされることはありません。

Base64 エンコードとは?

テキストを RFC 4648 で定義された Base64 に変換します。テキストはまず UTF-8 のバイト列になるので、絵文字、日本語、アラビア文字、ベトナム語の文字も正しくエンコードされ、そのバイト列が 64 文字の Base64 アルファベットで書き出されます。テキストの代わりに、16 進の生バイトを貼り付けることもできます。

Base64 エンコードの使い方

  1. 入力 にテキストを入力または貼り付けます(生バイトをエンコードするには 入力形式 を 16進バイト列 に切り替えます)。
  2. 必要に応じて URL セーフなアルファベット(- と _) にチェックを入れたり、= パディングを付ける のチェックを外したり、76 文字ごとに改行(MIME) を有効にしたりします。
  3. Base64 の結果が 出力 にすぐ表示されます。
  4. コピー をクリックするか、入力に使う でデコードに切り替えて往復を確認します。

例

入力
Hello, World! Xin chào 👋
出力
SGVsbG8sIFdvcmxkISBYaW4gY2jDoG8g8J+Riw==

既定のオプション(UTF-8 入力、パディング付きの標準アルファベット)です。

Base64 エンコードを使うべき場面

バイナリや非 ASCII のデータをテキスト専用の経路で送る必要があるとき(JSON のフィールド、データ URI、HTTP Basic 認証ヘッダー、メール(MIME)、設定ファイルなど)に Base64 を使います。データの保護には使わないでください。Base64 はエンコーディングであり、誰でもデコードできます。また、サイズが 33% 増える点が問題になる大きなファイルにも向きません(ファイルには Base64 ファイルエンコーダーを使ってください)。

Base64 エンコードの仕組み

入力はバイト列に変換されます(TextEncoder による UTF-8、または 16 進からの解析)。3 バイト(24 ビット)ごとに 4 つの 6 ビットのグループに分けられ、それぞれ A–Z a–z 0–9 + / の 1 文字に対応付けられます。最後のグループが 1 バイトまたは 2 バイトの場合、出力は = で 4 文字の倍数になるようにパディングされます。URL セーフな形式(RFC 4648 §5、「base64url」)は + を - に、/ を _ に置き換え、通常はパディングなしで使われます。76 文字の折り返しは MIME の行長規則に従います。

一般的な使用例

  • user:password から HTTP の Authorization: Basic ヘッダーを作る
  • 短い文字列やトークンを JSON や YAML に埋め込む
  • JWT のヘッダーとペイロード用の base64url の値を作る
  • レガシーな ASCII 専用システムでも壊れないよう、非 ASCII のテキストをエンコードする
  • UTF-8 の文字列が実際にどんなバイト列になるかを確認する

セキュリティ注意事項

エンコードはブラウザー内でローカルに行われ、何もアップロードされません。Base64 には機密性がないことを忘れないでください。

よくある質問

日本語などのテキストで、他のツールと Base64 が異なるのはなぜですか?

ツールによっては、テキストを Latin-1 や UTF-16 でエンコードします。このツールは常に UTF-8 を使います。これは、ブラウザー、btoa(unescape(encodeURIComponent(s)))、Python の base64.b64encode(s.encode())、ほとんどの API が想定している方式です。

Base64 と base64url の違いは何ですか?

base64url は + と / の代わりに - と _ を使うため、パーセントエンコードなしで URL やファイル名に入れられます。JWT は = パディングなしの base64url を使います。

Base64 は暗号化ですか?

いいえ。表現を変えるだけで、誰でもデコードできます。データが機密なら、本物の暗号化(たとえば AES-GCM)を使ってください。

Base64 の出力はどのくらい大きくなりますか?

入力 3 バイトごとに出力が 4 文字になるため、約 33% 大きくなり、折り返しを有効にした場合はさらに改行が加わります。

他のカテゴリを見る