WMW

Base64エンコード・デコード

Free

テキストをbase64にエンコードしたり、base64をテキストにデコードしたりでき、入力しながらリアルタイムで処理され、完全なUnicodeサポートと任意のURLセーフバリアント付き。

すべてブラウザ内で処理されます。テキストがデバイスの外に送信されることはありません。

最近のアクティビティ

全員に公開されています。すべての訪問者による直近20回の使用履歴を新しい順に表示します。

まだアクティビティはありません。最初の一人になりましょう。

コメント (0)

このツールは役に立ちましたか?コメントを残したり、コツを共有したり、改善方法を教えてください。

ゲストのコメントは公開前に確認されます。 ログイン すると即座に投稿できます。

まだコメントはありません。最初にご意見をお寄せください!

このツールの機能

このツールは、入力するそばからリアルタイムでテキストをBase64にエンコードしたり、Base64をテキストにデコードしたりします。完全なUnicodeサポートとオプションのURLセーフバリエーションを備えています。

仕組み

テキストはまず生のUTF-8バイト列に変換されます。エンコードはそのバイトを3つずつグループ化し、各3バイト(24ビット)のグループを、標準的な64文字のアルファベット(A-Z、a-z、0-9、+、/)から4つのBase64文字(それぞれ6ビット)に対応付け、バイト数が3の倍数でない場合は最後のグループを=文字でパディングします。デコードはこれを正確に逆にします。4つのBase64文字がそれぞれ6ビットに戻され、3バイトに再結合され、結果のバイト列がUTF-8テキストとして解釈されます。URLセーフオプションは単に + を - に、/ を _ に置き換える(そしてパディングを省略する)だけです。これらは標準のBase64が使う文字の中で、URLに直接置くには安全でない唯一の2文字です。

解決できる問題

よくある質問

Base64は暗号化ですか?

いいえ。Base64は可逆的なエンコーディングであり、暗号化ではありません。公開された標準アルファベットを使って任意のバイト列をテキストとして安全な形式に変換するだけで、誰でも鍵やパスワードなしに即座にデコードし直せます。これはメールやJSONのようなテキストのみのチャネルでバイナリデータを安全に送信するためのものであり、何かを秘密にするためのものではありません。

なぜエンコードされたテキストが = や == で終わることがあるのですか?

Base64は常に入力を3バイトずつのまとまりにグループ化し、1グループにつき4つの出力文字を生成します。入力の長さが3の倍数でない場合、最後のグループは1つまたは2つの=文字でパディングされ、この4文字のグループ化を一貫させます。これはエラーではなく、フォーマットの標準的な一部です。

「URLセーフ」なBase64は何を変えるのですか?

標準のBase64は + と / の文字を使用しますが、どちらもURL内では特別な意味を持つため、そのまま使うにはパーセントエンコードが必要になります。URLセーフバリエーションでは、これらを代わりに - と _ に置き換え(さらに = パディングを省略)、それ以上のエスケープなしで結果を直接URLパスやクエリ文字列に入れられるようにします。

なぜデコードがエラーで失敗したのですか?

貼り付けたテキストが最初から有効なBase64でなかったか、有効なUTF-8テキストを形成しないバイト列にデコードされたか(例えば、実際にはテキストではなく画像や他のバイナリファイルをエンコードしていた場合)のいずれかです。このツールはテキスト用であるため、有効なUTF-8を形成しないバイナリ出力は、壊れて見えるテキストを表示する代わりにエラーとして報告されます。

絵文字や英語以外のテキストは正しく処理されますか?

はい。テキストはエンコード前にその基となるUTF-8バイト列に変換され、デコード時も同じ方法で逆変換されるため、アクセント付き文字、トルコ語の文字、絵文字、その他の非ASCIIテキストは、純粋なASCIIしか扱えなかった古いBase64実装でよくある文字化けを起こさず正しく往復変換されます。

関連ツール