Base64 エンコーダー/デコーダー
テキストを Base64 にエンコード、または Base64 をテキストにデコードします。標準と URL セーフの文字セットに対応しています。
コード例
自分のプロジェクトにコピーして使えます。どの例も言語の標準ライブラリだけを使うので、インストールするものはありません。
const text = 'Hello, wereld! 👋'
const bytes = new TextEncoder().encode(text)
const encoded = btoa(String.fromCharCode(...bytes))
console.log(encoded)概要
Base64 は、あらゆるバイト列を64種類の安全な文字だけのテキストに変換する方式です。メール本文、JSON のフィールド、URL、データ URI、HTTP ヘッダーなど、テキストしか扱えないシステムでもバイナリデータを受け渡せます。このツールは、テキストを Base64 にエンコードし、Base64 をテキストにデコードします。処理はすべてブラウザ内で行われます。
使い方
- エンコードかデコードを選びます。
- テキストを入力または貼り付けるか、ファイルを入力欄にドロップします。
- 標準のアルファベット(
+と/)か URL セーフのアルファベット(-と_)を選び、=のパディングを付けるかどうかも選びます。 - 結果をコピーするか、そのまま別のツールに送ります。
エンコード済みの値のリストなど、各行を個別に変換したいときは、行ごとのオプションをオンにします。
例
Hello, world! をエンコードすると次のようになります。
SGVsbG8sIHdvcmxkIQ==
同じバイト列を、URL セーフのアルファベットでパディングなしにした場合です。
SGVsbG8sIHdvcmxkIQ
知っておくと便利なこと
- Base64 は暗号化ではなくエンコードです。誰でもデコードできます。
- 結果は入力より約3分の1大きくなります(3バイトが4文字になります)。
- テキストは既定で UTF-8 として変換されます。デコードしたテキストが文字化けする場合は、元のテキストが書かれた文字セットを選んでください。
- JSON Web Token は、パディングなしの URL セーフのアルファベットを使います。
Base64 とは?
Base64 は、バイナリデータを64種類の印字可能文字で表現する方式です。メール本文、JSON のフィールド、データ URL など、テキストしか受け付けないシステムでもデータを受け渡せます。3バイトが4文字になるため、結果は約33%大きくなります。
よくある質問
URL セーフのアルファベットはいつ使いますか?
結果を URL やファイル名に入れるときに使います。+ と / がそれぞれ - と _ に置き換えられます。JWT ではパディングなしで使われます。
デコードしたテキストが文字化けするのはなぜですか?
選択した文字セットとは別の文字セットでエンコードされている可能性があります。ISO-8859-1 を試すか、データがファイルではなくテキストであることを確認してください。
Base64 は暗号化ですか?
いいえ。Base64 は誰でもデコードできるため、何も隠せません。データを運ぶために使うもので、保護するためには使わないでください。