Base64エンコード / デコード
テキストをBase64にエンコードしたり、Base64をテキストに戻したりできます—完全なUnicode対応と、オプションのURL-safe形式に対応しています。すべてブラウザで実行されます。
出力
使い方
Base64は、64個の印字可能なASCII文字(大文字と小文字のA-Z、a-z、数字0-9、および通常は+と/の2つの追加記号)のみを使用して、バイナリデータまたはテキストを表現する方法です。末尾の=文字は、必要に応じて出力を4文字の倍数にパディングします。生のバイトを送信する代わり(一部のシステムがコマンドとして誤読する可能性のある制御文字が含まれる可能性があります)、Base64は入力の3バイトごとに、その64文字アルファベットから引き出された4出力文字に再エンコードするため、結果は安全なプレーンテキストであることが保証されます。 Base64は、コンピュータがデータを移動するために使用する多くのチャネルがバイナリではなくテキスト用に設計されたために存在します。Email (MIME)、JSONペイロード、XMLドキュメント、および多くのHTTPヘッダーは、生のバイナリを破損、切り詰め、または誤解する可能性があります—迷子の制御文字はメッセージを破損するか、単純なパーサーをクラッシュすることができます。バイナリをBase64として最初にエンコードすると、通常の文字、数字、および一握りの記号に変わり、すべてのテキストベースのシステムは既に送信者から受信者への未修正で運ぶ方法を知っています。 短い例は力学を具体的にしています。単語のMan—3つのASCIIバイト、77、97、110—Base64は、これらの24ビットを4つの6ビットチャンクにグループ化し、アルファベットから各チャンクを文字にマップして、TWFuを生成します。2文字の単語のHiをエンコードすると、16ビットのみが供給されるため、Base64は最後のグループをパディングし、=文字を追加して、SGk=を与えます。3入力バイトすべてが4出力文字になるため、Base64テキストは常に元のテキストの約33%大きくなります—これは、この方法で大きなファイルを埋め込む前に覚えている価値のあるルールです。 このツールを使用するには、プレーンテキストをBase64に変換するためにエンコードを選択するか、Base64を読み取り可能なテキストに変換するためにデコードを選択し、入力ボックスに貼り付けるか入力します—結果は出力ボックスに瞬時に表示されます。Unicode text、emojiおよび非英語スクリプトを含む、UTF-8バイトにエンコード前に変換され、古いbtoa()-style toolsのように破れるのではなく、正しくラウンドトリップします。URLまたはファイル名内に行く必要がある場合は、URL-safeをオンにしてください:+と/を-と_に交換し、末尾のパディングをドロップします。 Base64は常にフードの下に表示されます:データURIは小さな画像、アイコン、またはフォントをCSSまたはHTMLに直接埋め込み、別のファイルリクエストの代わりに;HTTPBas認証ヘッダーはBase64-encodedされたユーザー名とパスワードペアを運びます。JSON Web Tokens (JWTs) はこの方法でそのヘッダーとペイロードセグメントをエンコードします。メール添付ファイルはBase64-encodedされ、MIMEテキストのみのメッセージ本体内でバイナリファイルを運ぶことができます。Base64が何であるか、何でないかについて明確にすることが重要です:それはエンコーディングであり、暗号化ではありません。誰でも1つのステップで秘密キーまたはパスワードなしで元のテキストに戻ってデコードすることができるため、データを機密に保つためにそれに依存しないでください—そのために本当の暗号化を使用してください。
よくある質問
- emojiと非英語テキストをサポートしていますか?
- はい。テキストは最初にUTF-8としてエンコードされるため、emoji、アクセント、CJK文字は正しくラウンドトリップします—単純なbtoa()がそれらを破るとは異なります。
- URL-safe Base64とは何ですか?
- +と/を-と_に置き換え、パディングを省略する変種で、結果はURL、クエリ文字列、ファイル名で安全に使用できます。
- データはどこに送信されますか?
- いいえ。エンコーディングとデコーディングはブラウザ内で完全に発生します—テキストはデバイスを離れません。
- Base64は暗号化ですか、それとも安全ですか?
- いいえ。Base64は可逆エンコーディングスキームであり、暗号化ではありません—それは秘密キーを持っていないため、誰でもこの同じツールまたは任意の言語でのコードの単一行を使用して元のテキストに戻ってデコードすることができます。それはテキストとして移動するバイナリデータを安全にするために存在し、それを隠したり保護したりするためではありません。機密性については、AESやTLSの代わりに本当の暗号化を使用してください。