# Base64エンコード・デコード

> テキストをBase64にエンコード/デコードする高度なオンラインツール。UTF-8文字の問題を解決し、URLセーフ形式をサポート。Base64の原理も解説。無料で利用可能。

URL: https://acrafto.com/ja/base64-encoder-decoder/

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

HTTPヘッダーで使用するために読み取り可能なテキストをBase64形式に変換する必要がある、またはAPIトークンのコンテンツを解読する必要がある場合、当社の**Base64テキストエンコーダー＆デコーダー**は、テキスト文字列を扱うための専門ツールであり、多バイト文字や特殊文字のような複雑な問題にも対応します。

> **画像を扱っていますか？**  
> コードが `data:image/png...` で始まる場合、またはファイルをテキストに変換したい場合、このツールは意味のない文字しか表示しません。画像変換専用のツールを使用してください。

## Base64フォーマットの仕組み

多くの人が日常的にBase64を使用していますが、その「内部」がどのように機能しているかを知る人はほとんどいません。これは魔法ではなく、ビットを使った単純な数学です。

コンピューター上の通常のテキストは8ビット（1バイト）で保存されます。しかし、Base64は64文字（`A-Z`、`a-z`、`0-9`、`+`、`/`）の「アルファベット」を使用します。`2^6 = 64` であるため、Base64の1文字は正確に**6ビット**の情報を表します。

### 変換プロセス（アルゴリズム）：

1. テキストの3文字（3 × 8ビット = 24ビット）が取得されます。
2. これらの24ビットは、6ビットの4つのグループに分割されます。
3. 各グループには、Base64テーブルから対応する文字が割り当てられます。

**結果：** 3文字から4文字を生成するため、結果のBase64文字列は常に元のテキストより約**33%長くなります**。

## 文字セットの問題：なぜ通常のBase64コンバーターは日本語を壊すのか？

ブラウザのコンソールで `btoa('日本語')` 関数を使用して「日本語」という単語をエンコードしようとした場合、おそらく「*String contains characters outside of the Latin1 range.*」というエラーを受け取ったことがあるでしょう。

Base64は元々7ビットのASCII文字用に設計されました。しかし、日本語、絵文字、その他の特殊記号（UTF-8）は、メモリ内でより多くのバイト（マルチバイト文字）を占めます。

- 文字 `a` = 1バイト。
- 文字 `あ` = 3バイト。
- 絵文字 🚀 = 4バイト。

当社のツールはこの問題を解決します。Base64へのエンコードの前に、テキストをUTF-8バイトシーケンスに正しく変換します。これにより、JSONオブジェクト、日本語テキスト、現代の記号もデータ破損のリスクなしに安全にエンコードできます。

## Base64テキストエンコードはどこで使われているか？

Base64の画像が主にCSS/HTMLへの埋め込みに使用される一方で、テキストBase64はバックエンドシステムで全く異なる用途に使用されます。

### 1\. HTTP基本認証

APIにログインする際、ヘッダーはしばしば次のようになります: `Authorization: Basic 44Om44O844K244O85ZCNOuODkeOCueODr+ODvOODiQ==` このコードの背後には、`ユーザー名:パスワード`の形式で単純に結合されたユーザー名とパスワードが隠されています。当社のツールを使用すると、これらのヘッダーを簡単に生成したり確認したりできます。

### 2\. JSON Webトークン (JWT)

現代のWebアプリケーションでは、ログインにJWTと呼ばれるものが使用されます。このようなトークンは、ドットで区切られた3つの長い文字列のように見えます。データ部分（ペイロード）は、Base64でエンコードされた通常のJSONオブジェクトです。

- **ヒント：** JWTトークンの真ん中の部分をここに貼り付けてデコードしてみてください。アプリケーションがあなたについてどのようなデータを記録しているか（例：ユーザーID、有効期限）が正確にわかります。

### 3\. 設定ファイル (Kubernetes Secrets)

Kubernetesのようなプラットフォームは、機密データ（Secrets）を設定用のYAMLファイルにBase64形式で保存します。これは暗号化ではなく、バイナリデータや問題のある文字（改行、引用符）を含むテキストをテキストファイルに保存する方法です。

## 「URLセーフBase64エンコーディング」とは何か、なぜ重要なのか？

標準のBase64アルファベットには、`+`（プラス）と`/`（スラッシュ）の文字が含まれます。これら両方の文字は、URLアドレスにおいて特別な意味を持ちます。

- `/` はディレクトリを区切ります。
- `+` はしばしばスペースとして解釈されます。

URLパラメーターで標準のBase64を送信した場合（例：`site.com?token=ab/cd+ef`）、サーバーはデータを誤って読み取る可能性があります。

### 解決策（URLセーフモード）：

当社のスイッチは、以下の変更を行う**Base64URL**（RFC 4648による）バリアントをアクティブにします。

- `+` は `-`（ハイフン）に変わります。
- `/` は `_`（アンダースコア）に変わります。
- URLでは不要な文字 `=`（パディング）が末尾から削除されます。

---

## 誤解：Base64は暗号化ではない！

初心者がしばしば混同する本質的な違いを認識することが重要です。

1. **エンコード (Encoding - Base64):** データを転送するために使用されます。これは、途中で壊れないように物をスーツケースに詰めるようなものです。誰でもスーツケースを見つけたら、開けて（デコードして）中身を見ることができます。**秘密データには安全ではありません。**
2. **暗号化 (Encryption - AES, RSA):** 鍵を使ってデータをロックします。鍵がなければ内容にアクセスできません。
3. **ハッシュ化 (Hashing - SHA, MD5):** 一方向のプロセス（例：パスワードの保存用）。結果から元のテキストを取得することはできません。

*パスワードや機密データを送信する必要がある場合、Base64だけでは不十分です。HTTPS (SSL/TLS) を使用して、転送を暗号化する必要があります。*

---

## よくある質問 (FAQ)

### 文字列の末尾にある「=」文字は何を意味しますか？

これは「パディング」と呼ばれます。Base64は3文字のグループでデータをエンコードするため、元のテキストの長さが3で割り切れない場合があります。デコーダーが末尾でいくつのビットを無視すべきかを知るために、「=」文字が末尾に追加されます。

### デコードされたテキストが「文字化け」するのはなぜですか？

おそらく、テキストではないデータをデコードしようとしています。Base64文字列が圧縮ファイル（ZIP）、画像、または暗号化されたデータを表している場合、テキスト（UTF-8）への変換は意味がありません。データの出所を確認してみてください。

### このツールはオフラインで動作しますか？

はい。変換ロジックはすべてJavaScriptで書かれており、ブラウザで直接実行されます。ページが読み込まれたら、インターネットから切断してもツールは引き続き機能します。あなたのデータがどこかに送信されることはありません。

## Other languages

- Čeština (cs): [Base64 Encoder a Decoder](https://acrafto.com/cs/base64-decoder-encoder/) ([Markdown](https://acrafto.com/cs/base64-decoder-encoder/index.md))
- Slovenčina (sk): [Base64 kódovač a dekódovač](https://acrafto.com/sk/base64-kodovac-dekodovac-online/) ([Markdown](https://acrafto.com/sk/base64-kodovac-dekodovac-online/index.md))
- English (en): [Base64 Encoder and Decoder](https://acrafto.com/en/base64-encoder-decoder/) ([Markdown](https://acrafto.com/en/base64-encoder-decoder/index.md))
- Deutsch (de): [Base64 Encoder und Decoder](https://acrafto.com/de/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/de/base64-encoder-decoder-online/index.md))
- Français (fr): [Encodeur et décodeur Base64](https://acrafto.com/fr/encodeur-decodeur-base64/) ([Markdown](https://acrafto.com/fr/encodeur-decodeur-base64/index.md))
- Español (es): [Codificador y decodificador Base64](https://acrafto.com/es/codificador-base64-decodificador-online/) ([Markdown](https://acrafto.com/es/codificador-base64-decodificador-online/index.md))
- Italiano (it): [Encoder e decoder Base64](https://acrafto.com/it/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/it/encoder-decoder-base64-online/index.md))
- Português (pt): [Codificador e decodificador Base64](https://acrafto.com/pt/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/pt/encoder-decoder-base64-online/index.md))
- Nederlands (nl): [Base64 encoder en decoder](https://acrafto.com/nl/base64-encoder-decoder/) ([Markdown](https://acrafto.com/nl/base64-encoder-decoder/index.md))
- Polski (pl): [Koder i dekoder Base64](https://acrafto.com/pl/koder-dekoder-base64-online/) ([Markdown](https://acrafto.com/pl/koder-dekoder-base64-online/index.md))
- Română (ro): [Base64 encoder și decoder](https://acrafto.com/ro/codor-decodor-base64/) ([Markdown](https://acrafto.com/ro/codor-decodor-base64/index.md))
- Magyar (hu): [Base64 kódoló és dekódoló](https://acrafto.com/hu/base64-kodolo-dekodolo-online/) ([Markdown](https://acrafto.com/hu/base64-kodolo-dekodolo-online/index.md))
- Ελληνικά (el): [Κωδικοποίηση και αποκωδικοποίηση Base64](https://acrafto.com/el/base64-encoder-decoder/) ([Markdown](https://acrafto.com/el/base64-encoder-decoder/index.md))
- Български (bg): [Base64 енкодер и декодер](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/) ([Markdown](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/index.md))
- Hrvatski (hr): [Base64 koder i dekoder](https://acrafto.com/hr/base64-koder-dekoder/) ([Markdown](https://acrafto.com/hr/base64-koder-dekoder/index.md))
- Slovenščina (sl): [Base64 kodirnik in dekodirnik](https://acrafto.com/sl/base64-kodirnik-dekodirnik/) ([Markdown](https://acrafto.com/sl/base64-kodirnik-dekodirnik/index.md))
- Eesti (et): [Base64 kodeerija ja dekodeerija](https://acrafto.com/et/base64-teisendaja/) ([Markdown](https://acrafto.com/et/base64-teisendaja/index.md))
- Latviešu (lv): [Base64 kodētājs un dekodētājs](https://acrafto.com/lv/base64-kodetajs-dekodetajs/) ([Markdown](https://acrafto.com/lv/base64-kodetajs-dekodetajs/index.md))
- Lietuvių (lt): [Base64 koduotuvas ir dekoduotuvas](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/) ([Markdown](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/index.md))
- Svenska (sv): [Base64 encode och decode](https://acrafto.com/sv/base64-kodare-avkodare-online/) ([Markdown](https://acrafto.com/sv/base64-kodare-avkodare-online/index.md))
- Dansk (da): [Base64 encoder og dekoder](https://acrafto.com/da/base64-encoder-dekoder-online/) ([Markdown](https://acrafto.com/da/base64-encoder-dekoder-online/index.md))
- Suomi (fi): [Base64-kooderi ja -dekooderi](https://acrafto.com/fi/base64-kooderi-dekooderi/) ([Markdown](https://acrafto.com/fi/base64-kooderi-dekooderi/index.md))
- Norsk (no): [Base64-enkoder og -dekoder](https://acrafto.com/no/base64-enkoder-dekoder/) ([Markdown](https://acrafto.com/no/base64-enkoder-dekoder/index.md))
- Українська (uk): [Base64 кодер і декодер](https://acrafto.com/uk/base64-koder-dekoder-onlajn/) ([Markdown](https://acrafto.com/uk/base64-koder-dekoder-onlajn/index.md))
- Русский (ru): [Base64 кодировщик и декодировщик](https://acrafto.com/ru/base64-koder-dekoder/) ([Markdown](https://acrafto.com/ru/base64-koder-dekoder/index.md))
- Српски (sr): [Base64 enkoder i dekoder](https://acrafto.com/sr/base64-enkoder-dekoder-online/) ([Markdown](https://acrafto.com/sr/base64-enkoder-dekoder-online/index.md))
- Македонски (mk): [Base64 енкодер и декодер](https://acrafto.com/mk/base64-converter/) ([Markdown](https://acrafto.com/mk/base64-converter/index.md))
- Bosanski (bs): [Base64 koder i dekoder](https://acrafto.com/bs/base64-koder-dekoder/) ([Markdown](https://acrafto.com/bs/base64-koder-dekoder/index.md))
- Shqip (sq): [Base64 kodues dhe dekodues](https://acrafto.com/sq/kodues-dekodues-base64-online/) ([Markdown](https://acrafto.com/sq/kodues-dekodues-base64-online/index.md))
- Türkçe (tr): [Base64 kodlayıcı ve çözücü](https://acrafto.com/tr/base64-kodlayici-cozucu-online/) ([Markdown](https://acrafto.com/tr/base64-kodlayici-cozucu-online/index.md))
- 한국어 (ko): [Base64 인코딩 디코딩](https://acrafto.com/ko/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ko/base64-encoder-decoder/index.md))
- العربية (ar): [ترميز وفك ترميز Base64](https://acrafto.com/ar/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ar/base64-encoder-decoder/index.md))
- हिन्दी (hi): [Base64 एन्कोडर और डिकोडर](https://acrafto.com/hi/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/hi/base64-encoder-decoder-online/index.md))
- Bahasa Indonesia (id): [Base64 encode dan decode](https://acrafto.com/id/konverter-base64-online/) ([Markdown](https://acrafto.com/id/konverter-base64-online/index.md))
- Tiếng Việt (vi): [Mã hóa và giải mã Base64](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/) ([Markdown](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/index.md))
- ไทย (th): [เข้ารหัสและถอดรหัส Base64](https://acrafto.com/th/base64-encoder-decoder/) ([Markdown](https://acrafto.com/th/base64-encoder-decoder/index.md))
- עברית (he): [קידוד ופענוח Base64](https://acrafto.com/he/base64-encoder-decoder/) ([Markdown](https://acrafto.com/he/base64-encoder-decoder/index.md))
