無料WEBツールdigtoooooools

by 大阪のホームページ制作会社digrart

Base64 エンコード&デコード|画像・テキストの双方向変換ツール

テキストとファイルをBase64に変換します。テキストモードでは双方向リアルタイム変換(エンコード/デコード)が可能。ファイル/画像モードではドラッグ&ドロップで画像プレビューやData URIを生成し、CSS・HTML用スニペットをワンクリックでコピーできます。すべての処理はブラウザ内で完結し、データはサーバーに送信されません。

📝 テキスト
📁 ファイル / 画像
📄 元テキスト(エンコード元)
⬇️ エンコード
🔡 Base64(エンコード結果)
📂
ここにファイルをドラッグ&ドロップ
または
最大 5MB • すべてのファイル形式対応
プレビュー
💾 Base64からファイルを復元
Base64エンコードの仕組み
Base64は、バイナリデータ(画像・ファイル・暗号化データなど)をASCII文字列に変換するエンコード方式です。3バイト(24ビット)のデータを4つの6ビット値に分割し、それぞれを A-Z(0〜25)、a-z(26〜51)、0-9(52〜61)、+(62)、/(63)の64種類の文字に対応させます。パディングには = を使用し、入力が3バイトの倍数でない場合に末尾に補完されます。データサイズは元の約133%(4/3倍)に増加しますが、テキストベースのプロトコルで安全にバイナリデータを転送できます。
Base64の主な用途
メール(MIME):メール本文や添付ファイルのエンコードに使用。② Data URI:HTML/CSS内に画像やフォントを直接埋め込み、HTTPリクエストを削減。③ API通信:JSONペイロード内にバイナリデータを格納(JWTトークンのペイロードなど)。④ Basic認証:HTTPのAuthorizationヘッダーで ユーザー名:パスワード をBase64エンコード。⑤ データ保存:CookieやLocalStorageにバイナリデータを安全に保存可能。
64文字の変換テーブル(RFC 4648)
Base64では以下の64文字が使用されます:AZ(インデックス0〜25)、az(26〜51)、09(52〜61)、+(62)、/(63)。パディング文字は = です。入力データが3バイトの倍数でない場合、末尾に = または == が追加されます(1バイト余り→ ==、2バイト余り→ =)。
URL-safe Base64とは
標準Base64の +/ はURLで特殊な意味を持つため、URL-safe Base64ではそれぞれ -_ に置き換えます(RFC 4648 Section 5)。パディングの = も省略されることが多いです。JWT(JSON Web Token)やURLパラメータ、Cookie、ファイル名での使用に適しています。WebブラウザのJavaScriptでURL-safe Base64を扱う場合、btoa()の出力を文字列置換で変換するのが標準的な手法です。
Data URIスキームの書式
Data URIは data:[MIMEタイプ];base64,[Base64データ] の形式で、外部ファイルを参照せずにデータを直接URLとして埋め込みます。例:data:image/png;base64,iVBORw0KGgo...。HTMLの <img src="..."> やCSSの background-image: url(...)<audio>/<video>src 属性などで利用でき、HTTPリクエスト数を削減することでページ表示を高速化できます。
Data URI利用時の注意点
Data URIは元データの約133%にサイズが増加するため、大きなファイルの埋め込みはかえってページ表示が遅くなります。目安として5KB以下のアイコンやSVGには効果的ですが、写真のような大きな画像にはCDN配信が推奨されます。また、Data URIはブラウザのキャッシュ対象外となるため、同じ画像を複数箇所で使う場合は外部ファイル参照のほうが効率的です。Chromeなどのブラウザではデータ量が多すぎる場合に、Data URIの一部機能が無効化されることもあります。
JavaScriptでのBase64変換
ブラウザ環境では btoa() でエンコード、atob() でデコードできます。ただし、これらはLatin-1(ISO 8859-1)のみ対応しており、日本語などのマルチバイト文字を直接渡すとエラーになります。マルチバイト文字を扱うには、TextEncoder でUTF-8バイト列に変換してから処理する必要があります。Node.jsでは Buffer.from(text, 'utf8').toString('base64') で変換できます。また、最新の環境では Uint8Array.fromBase64()/.toBase64() も利用できます(ES2025+)。
他のプログラミング言語での実装
Python: base64.b64encode(data) / base64.b64decode(data)PHP: base64_encode($str) / base64_decode($str)Java: java.util.Base64.getEncoder().encodeToString(bytes)Go: encoding/base64 パッケージの StdEncoding.EncodeToString()C#: Convert.ToBase64String(bytes) / Convert.FromBase64String(str)Ruby: Base64.strict_encode64(str)。すべての主要言語に標準ライブラリとして組み込まれています。
エンコード(Encode)
データを別の形式に変換すること。Base64エンコードではバイナリデータをASCII文字列に変換します。
デコード(Decode)
エンコードされたデータを元の形式に復元すること。Base64デコードではBase64文字列をバイナリデータに変換します。
MIME(Multipurpose Internet Mail Extensions)
メールでテキスト以外のデータ(画像・音声・添付ファイルなど)を扱うための規格。Base64はMIMEの主要なエンコード方式で、Content-Transfer-Encoding: base64 として使用されます。
RFC 4648
Base64エンコーディングのアルゴリズムと変換テーブルを定義するIETF標準規格文書。Base64・Base64URL・Base32・Base16が規定されています。
Data URI / Data URL
data: スキームで始まるURI。MIMEタイプとBase64データを含み、外部ファイルを参照せずリソースを直接埋め込む形式です。
パディング(Padding)
Base64出力の末尾に付く = 記号。入力が3バイトの倍数でない場合に出力を4文字の倍数に揃えます。URL-safe形式では省略されることが多いです。
URL-safe Base64
+-/_ に置換した形式。URLやファイル名・Cookie値に安全に使用できます。
JWT(JSON Web Token)
認証情報をJSONでやり取りするトークン形式。ヘッダー・ペイロード・署名がURL-safe Base64でエンコードされ、ドット(.)で連結されます。
btoa() / atob()
ブラウザ組み込みのBase64変換関数。btoa()(binary to ASCII)でエンコード、atob()(ASCII to binary)でデコード。Latin-1のみ対応、マルチバイト文字はTextEncoderで前処理が必要です。
TextEncoder / TextDecoder
JavaScriptでUTF-8などの文字コードとバイト列を相互変換するWeb API。new TextEncoder().encode('文字列') でUTF-8のUint8Arrayを取得できます。
画像処理・テキスト解析
WEB開発ツール
SEO対策
ネットワーク
セキュリティ
ビジネス
SNS・エンタメ
生活