Base64エンコーダー

Base64エンコーダーツールを使用して、任意の文字列をBase64形式にエンコードし、安全なデータエンコーディングを行います。

2件中5件の評価
Base64エンコーダー

Base64エンコーダーは、文字列を標準のBase64テキストに変換する無料ツールです。

Base64とは何ですか?なぜ使われるのですか?

Base64は、文字、数字、少数の記号を使ってデータを表現する、バイナリからテキストへのエンコード方式です。テキストは問題なく転送できても、未処理のバイナリデータは変更されたり拒否されたりするシステムがあるため使われます。

標準Base64の文字セットには、英大文字と英小文字、数字、プラス記号、スラッシュが含まれます。末尾にはパディングとして等号が付くこともあります。入力の3バイトごとに4文字のBase64へ変換されるため、エンコード後の値は通常、元のデータより長くなります。

入力はHelloです。

出力はSGVsbG8=です。

Base64が処理するのは、人が読める文字ではなくバイトです。空白、句読点、数字も、ほかの入力と同じようにエンコードされます。アクセント付き文字、絵文字、非ラテン文字は、最初に文字エンコーディングを適用する必要があり、通常はUTF-8が使われます。バイトエンコーディングが異なれば、Base64の結果も変わります。入力が空ならエンコード結果も空になり、入力が非常に長ければ、その長さに比例して出力も長くなります。

Base64はエンコードであり、暗号化ではありません。デコーダーがあれば誰でも元のデータを復元できるため、機密性はありません。パスワード、APIキー、個人情報を隠す用途には適していません。

図解:テキストがBase64エンコーダーツールを双方向に通過する

Base64エンコーダーの使い方は?

エンコードしたい文字列を入力し、Base64エンコードされたの結果欄に表示される変換後の値を確認してください。このツールは、PHPのbase64_encode関数による標準Base64エンコードを使用します。

  1. 残したい空白や改行も含め、元の文字列を正確にコピーしてください。
  2. 返されたBase64値に引用符や余分な空白を加えず、そのままコピーしてください。
digily.link のBase64エンコーダーツールと入力フォーム

処理はサーバー上で行われます。入力内容はHTTPS経由でサーバーへ送信され、保存されません。HTTPSによって送信中のリクエストは保護されますが、受信側のシステムでBase64が本当に必要な場合を除き、機密情報は送信しないでください。

Base64は実際にどこで使われますか?

Base64は、バイナリデータや任意のバイト列をテキストベースの形式で扱う必要がある場合に使われます。受信側のシステムは、その値がBase64であることを認識し、適切な段階でデコードする必要があります。

  • データURLでは、Base64でエンコードした画像、フォント、その他のファイルを、メディアタイプとともにHTMLやCSSへ直接埋め込みます。
  • クエリ文字列には、エンコード済みのトークンや構造化データが含まれることがあります。ただし通常は、URLセーフなBase64形式のほうが適しています。
  • メールでは、プレーンテキストとして安全に送れない添付ファイルやメッセージパートに対し、MIMEの転送エンコーディングの1つとしてBase64を使用します。
  • JSONペイロードでは、JSONに標準のバイナリ型がないため、画像のバイト列、文書、暗号データなどを文字列として表すことがあります。
  • HTTP認証のBasic認証では、ユーザー名とパスワードにBase64を使用します。デコードすれば値を読めるため、通信経路のセキュリティは別途必要です。
Base64エンコーダーツールが生成した結果の例

標準Base64とBase64urlの選び方

このツールは標準Base64を生成します。MIMEメール、多くのJSON API、通常のBase64文字セットを明示的に求めるシステムに適しています。標準形式の出力には、+、/、末尾の=パディングが含まれることがあります。

値をURL、ファイル名、Cookie、JSON Web Tokenの一部として使う場合は、Base64urlを選んでください。この形式では、+を-に、/を_に置き換え、多くの場合はパディングも省略します。受信側システムの仕様を確認せずに形式を切り替えないでください。一方の文字セットを前提とするデコーダーは、もう一方を拒否することがあります。

Base64をデコードできない、または文字化けするのはなぜですか?

Base64をデコードできない主な原因は、想定外の形式が使われているか、転送中に入力が変更されたことです。正しいBase64でも、デコード結果がバイナリデータなら、テキストとして表示すると文字化けして見える場合があります。

  • 文字セットの違いは、Base64urlの入力を標準Base64専用の厳密なデコーダーへ渡した場合や、その逆の場合によく起こります。
  • パディングの欠落は、長さを1個または2個の等号で補う必要があるデコーダーでエラーの原因になります。
  • 二重エンコードは、すでにエンコードされている値をもう一度エンコードすると発生します。1回目のデコードでは元の内容ではなく、別のBase64らしい文字列が返されます。
  • 文字の変化は、クエリ文字列内のプラス記号が空白として解釈された場合や、コピー時に改行や空白が混入した場合に起こります。
  • バイナリ出力は、テキストとして表示すると文字化けして見えることがあります。デコードしたバイト列は、画像、圧縮アーカイブ、PDF、暗号化ファイルなどの可能性があり、対応するアプリケーションで開く必要があります。

Base64デコーダーを使うと、標準Base64テキストを元に戻せます。デコード後のバイト列が画像なら、次はBase64を画像に変換を使うほうが手早いでしょう。

よくある質問

Base64では大文字や改行もそのまま保持されますか?

はい。Base64は、大文字と小文字の違いや改行文字を含む、元のバイト列を保持します。ただし、Windows形式とUnix形式の改行コードではバイト列が異なるため、見た目が同じ複数行テキストでもエンコード結果が変わることがあります。

Base64をHTMLやCSSにそのまま貼り付けられますか?

その文書で必要な構文を追加した場合に限ります。通常、データURLでは、エンコード済みペイロードの前にメディアタイプと;base64マーカーが必要です。このエンコーダーが返すのはペイロードだけで、完全なURLは作成しません。

同じテキストならBase64の値も必ず同じになりますか?

入力のバイト列が同一なら、同じ値になります。文字エンコーディングの違い、末尾の見えない空白、バイトオーダーマーク、改行コードの変更があると、結果も変わります。

Base64では大文字と小文字が区別されますか?

はい。Base64の文字セットでは大文字と小文字がそれぞれ異なる値を表します。そのため、文字列が正しい形式に見えていても、大文字と小文字を変更するとデコード後のデータが破損する可能性があります。

このツールでファイルをエンコードできますか?

このツールは、ファイルのアップロードではなく文字列のエンコードを対象としています。ファイルをテキストとして表した内容を貼り付けても、ファイルの生のバイト列をエンコードしたことにはなりません。別のアプリケーションでファイルのバイト列をBase64として扱う必要がある場合は、ファイル対応のエンコーダーを使い、そのアプリケーションが指定するBase64文字セットとパディングの要件に従ってください。

類似のツール

Base64デコーダー

Base64デコーダーツールを使用して、Base64入力を元の文字列形式にデコードし、データを簡単に取得します。

4,931
43

人気のツール