Base64・URLエンコーダー
端末内で動作し、何も送信されません。すべてお使いの端末上で完結します。入力またはアップロードした内容はどこにも送信されません。
テキスト
結果
結果はここに表示されます
Base64およびURLエンコードされた文字列をブラウザ内だけでエンコード・デコードしたり、ファイルをBase64に変換したりします。
Base64は、64種類の印字可能な文字を使って任意のバイナリデータを純粋なASCIIテキストに変換します。そのため、画像をCSSやHTMLに直接埋め込む、ファイルをメールに添付する、JWT内にトークンをエンコードするなど、バイナリデータがテキストのみのチャネルを通る必要があるあらゆる場面で使われています。URLエンコード(パーセントエンコード)はこれとは別の、無関係な方式で、スペースやアンパサンドのようにURLがそのままでは含められない文字をエスケープし、クエリ文字列に配置しても壊れないようにします。このツールはどちらの方式についても、テキストやファイルを双方向に変換します。すべてブラウザ内で完結し、どこにもアップロードされません。
よくある質問
Base64は暗号化ですか?
いいえ。Base64は暗号化ではなくエンコードです - このツールを含め、誰でも鍵やパスワードなしで即座にデコードできます。データがバイナリではなくテキストを想定するシステムを安全に通過できるよう、表現形式を変えているだけです。機密性の高いものを隠すために使うことは絶対にやめてください。
Base64エンコードされたテキストがなぜ=記号で終わるのですか?
Base64は3バイトずつのまとまりで処理され、それぞれが4文字の出力に変換されます。入力が3バイトの倍数でない場合、=文字が最後のまとまりを4文字ぴったりまで埋めます。URLセーフな形式では、デコーダーが文字列の長さから通常推測できるため、このパディングは省略されることが一般的です。
標準アルファベットとURLセーフなアルファベットの違いは何ですか?
標準のBase64は64文字のうち2つとして+と/を使用しますが、どちらもURL内では特別な意味を持ちます(それぞれスペースとパス区切り文字)。そのため標準のBase64文字列をURLやファイル名に直接入れると壊れることがあります。URLセーフな形式ではこの2文字の代わりに-と_を使用し、これがJWTや類似のトークンで使われる形式である理由です。
デコード結果がテキストではなくバイナリデータになることがあるのはなぜですか?
Base64はテキストだけでなく、画像、フォントファイル、実行ファイルなど、文字通りどんなバイトでもエンコードできます。デコードされたバイトが有効なUTF-8テキストを構成しない場合、このツールはそれを読み取り可能な文字列として表示できませんが、ダウンロードしてファイルとして保存すれば元のバイナリ内容を復元できます。
Base64でエンコードした結果が元のデータよりおよそ3分の1大きくなるのはなぜですか?
Base64は入力の3バイトごとに4つの出力文字を割り当てるため、テキストの一部をエンコードする場合でもファイル全体をエンコードする場合でも、結果は常に元のデータよりおよそ4/3倍(約33%)大きくなります。この増加分は、任意のバイナリデータをわずか64種類の印字可能文字だけで表現するための代償であり、正常な動作で何か問題が起きたわけではありません。
URLセーフなBase64文字列をデコードする前に「URLセーフなアルファベット」をオンにする必要がありますか?
いいえ - 文字列が標準アルファベットとURLセーフなアルファベットのどちらを使っていても、デコードは常に機能します。内部では、このツールが-と_を自動的に+と/に戻し、不足している=パディングも自動で補うため、どちらの形式もそのままデコードモードに貼り付けられます。このチェックボックスは出力に使うアルファベットを決めるものなので、エンコード時にのみ関係します。
開発者向け: URLに `q` パラメータを付けてこのページを開くと - 例: gizke.com/base64?q=hello world - その値が自動的に入力されます。ほとんどの訪問者には不要な機能で、すぐに使える例に直接リンクするためのものです。