Base64 エンコード・デコードツール | オンラインで高速変換
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ビットの情報を表します。
変換プロセス(アルゴリズム):
- テキストの3文字(3 × 8ビット = 24ビット)が取得されます。
- これらの24ビットは、6ビットの4つのグループに分割されます。
- 各グループには、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 dXppdmF0ZWw6aGVzbG8=
このコードの背後には、ユーザー名:パスワードの形式で単純に結合されたユーザー名とパスワードが隠されています。当社のツールを使用すると、これらのヘッダーを簡単に生成したり確認したりできます。
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は暗号化ではない!
初心者がしばしば混同する本質的な違いを認識することが重要です。
- エンコード (Encoding - Base64): データを転送するために使用されます。これは、途中で壊れないように物をスーツケースに詰めるようなものです。誰でもスーツケースを見つけたら、開けて(デコードして)中身を見ることができます。秘密データには安全ではありません。
- 暗号化 (Encryption - AES, RSA): 鍵を使ってデータをロックします。鍵がなければ内容にアクセスできません。
- ハッシュ化 (Hashing - SHA, MD5): 一方向のプロセス(例:パスワードの保存用)。結果から元のテキストを取得することはできません。
パスワードや機密データを送信する必要がある場合、Base64だけでは不十分です。HTTPS (SSL/TLS) を使用して、転送を暗号化する必要があります。