メインコンテンツへスキップ

Base64 エンコード/デコード

テキストやファイルをBase64形式にリアルタイムでエンコード・デコードできる無料オンラインツール。UTF-8日本語対応、URLセーフBase64切替、Data URI生成にも利用可能。ブラウザ完結でサーバー送信なし、APIキーや機密文字列も安心して処理できます。

テキストやバイナリデータをBase64形式にエンコード・デコードするツールです。日本語(UTF-8)対応、URLセーフBase64、Data URI生成にも対応しており、ブラウザ内で完結します。

Base64 エンコード/デコード
結果がここに表示されます...

// Base64 エンコード/デコードの機能と特徴

Base64とは

Base64は、バイナリデータを64種類のASCII文字(A-Z, a-z, 0-9, +, /)とパディング文字(=)で表現するエンコード方式です。RFC 4648で標準化されており、バイナリデータをテキストとして安全に送受信する必要がある場面で広く使われています。

Base64エンコードの仕組み

入力データを6ビットずつに分割し、各6ビットを対応するASCII文字に変換します。元のデータが3バイト(24ビット)ごとに4文字のBase64文字列に変換されるため、エンコード後のデータサイズは元の約1.33倍になります。端数が出る場合は「=」でパディングされます。

Base64が使われる場面

Data URIスキームでHTML内に画像を埋め込む場合、メール(MIME)でバイナリ添付ファイルを送信する場合、JSON内にバイナリデータを格納する場合、Basic認証のヘッダー(Authorization)、JWTのペイロード、SAMLのアサーション、OAuthのstate値など、テキストベースのプロトコルでバイナリデータや非ASCII文字列を扱う多くの場面で使用されています。

標準BaseとURLセーフBase64

標準Base64(RFC 4648 §4)は`+`と`/`を使うため、URLやファイル名にそのまま含めると不具合の原因になります。URLセーフBase64(RFC 4648 §5)は`+`を`-`、`/`を`_`に置換し、パディング`=`も省略することがあります。JWT・OAuth・PKCEなどでURLセーフ版がよく使われ、両方の形式を相互変換できると便利です。

// Base64 エンコード/デコードに関するよくある質問

Base64エンコードとは何ですか?
Base64はバイナリデータをASCII文字列(A-Z, a-z, 0-9, +, /)に変換するエンコード方式で、RFC 4648で標準化されています。メール添付(MIME)・URLパラメータ・JSON内バイナリ・Basic認証・Data URI など、テキストのみ扱える場面でバイナリデータや非ASCII文字列を安全に送受信するために使われます。可逆変換のためデコードで元データに戻せます。
Base64エンコードは暗号化ですか?
いいえ、Base64は暗号化ではなく**エンコード**です。鍵を必要とせず、誰でも標準ライブラリでデコードできます。「base64でパスワードを保護した」というのは大きな誤解で、機密情報の保護には使えません。秘匿が必要な場合はAES等の暗号化、または不可逆ハッシュ(bcrypt等)と組み合わせて使ってください。
日本語テキストもBase64変換できますか?
はい、本ツールはUTF-8エンコーディングで処理しているため、日本語・中国語・絵文字を含むあらゆるUnicode文字をBase64に変換できます。例えば「こんにちは」→`44GT44KT44Gr44Gh44Gv`のように12バイトのBase64文字列になります。デコード時もUTF-8で正しく復元します。古いシステムでShift_JISベースのBase64と相互運用する場合は注意してください。
Base64エンコードするとデータサイズはどのくらい増えますか?
Base64エンコードすると、元のデータの約1.33倍(4/3倍)のサイズになります。3バイトの入力が4文字のBase64文字列に変換されるためです。例えば1MBの画像をData URIに変換すると約1.37MB程度になります。通信量や保存容量の見積もりではこの増加分を考慮してください。
URLセーフなBase64とは何ですか?
標準Base64は`+`と`/`を使うためURLやファイル名で問題が起きやすく、URLセーフ版では`+`→`-`、`/`→`_`に置換し、パディングの`=`を省略することもあります。RFC 4648 §5で定義され、JWT(JSON Web Token)、OAuth、PKCE、AWS署名など多くのWeb標準で採用されています。本ツールでは両方を相互変換できます。
Base64文字列の末尾の「=」は何ですか?
パディング文字で、元データのバイト数が3の倍数でないときに4文字単位を埋めるために付与されます。元データが1バイト余ると`==`、2バイト余ると`=`が末尾に付きます。URLセーフBase64では省略されることが多く、JWTなどでは省略形が標準です。デコーダ側は両方を受け付ける実装が一般的です。
ファイルをBase64エンコードしてData URIにするには?
画像やPDFなどファイルをBase64化すると`data:image/png;base64,iVBORw0...`のようなData URIになり、HTML/CSS/Markdown内に直接埋め込めます。本サイトには専用の[画像→Base64ツール](/tools/image-base64/)も用意しています。HTMLメールでの画像埋め込みやCSPで外部リソースを制限している環境で重宝します。
Basic認証のAuthorizationヘッダーを作るには?
HTTP Basic認証は `Authorization: Basic <base64>` 形式で、`<base64>` の部分は「ユーザー名:パスワード」をUTF-8でBase64エンコードした値です。例えば `admin:secret` なら `YWRtaW46c2VjcmV0` となります。本ツールにそのまま貼り付けて変換できます。本番環境ではHTTPS必須で、平文と同等の保護しかない点に注意してください。
デコードでエラーになる場合の原因は?
入力にBase64で使えない文字(半角スペース・全角文字・改行・「.」等)が混入していると、デコードに失敗します。よくある原因は (1) コピー時に末尾に空白が混入、(2) URLからの取得で`+`が空白に変換されている、(3) パディング`=`の過不足、(4) URLセーフ形式と標準形式の混在 です。前後の空白を取り除き、形式を統一して再試行してください。
データはサーバーに送信されますか?
いいえ、すべての処理はブラウザ内のJavaScriptで完結します。エンコード対象のテキスト・ファイルはサーバーに送信されません。APIキー・OAuthトークン・パスワード・社内認証情報など機密性の高い文字列もブラウザ内処理なので安全に変換できます。

// Base64 エンコード/デコードの使い方

  1. テキストを入力

    上部の入力欄にエンコードまたはデコードしたいテキストを貼り付けます。`ユーザー名:パスワード`形式のBasic認証文字列や、APIトークン、URLパラメータなど任意の文字列を入力できます。日本語(UTF-8)もそのまま処理されます。

  2. モードを選択

    エンコード(テキスト→Base64)またはデコード(Base64→テキスト)を選択します。URLセーフ形式が必要な場合は対応するオプションを選んでください(JWT・OAuth等で利用)。

  3. 結果を確認・コピー

    リアルタイムで変換結果が表示されます。コピーボタンでワンクリックでクリップボードにコピーできます。生成したBase64文字列はそのまま`Authorization`ヘッダーや`data:`URIに貼り付けて利用できます。

カテゴリ エンコード