Base64デコーダー
Base64エンコーダー・デコーダーのプリセット
Base64を読みやすいテキストにデコードします。Unicodeを正しく処理し、標準Base64とJWTが使うURLセーフな変種の両方を受け付けるため、トークンのセグメントを直接貼り付けることができます。
- ファイルは端末の外に出ません
- 無料、登録不要
- 透かしなし
- 一度読み込めばオフラインでも動作します
Base64エンコーダー・デコーダーの使い方
- 1
方向を選ぶ
エンコードとデコードを切り替えます。
- 2
データを入力
入力ボックスに入力するか貼り付けます。入力中に変換されます。
- 3
結果をコピー
出力をコピーするか、テキストファイルとしてダウンロードします。
デコードが両方の変種を受け付ける必要がある理由
実際に見つかるBase64文字列は、標準Base64 — メール添付、データURI、設定ファイルなど — であることも、より一般的にはJWTの3つのピリオド区切りセグメントの1つからのBase64URLであることもあります。この2つの変種は3文字だけ異なるため、正確に1つの形式だけを受け付けるデコーダーは、トークンのセグメントを受け付ける前に手動で`-`を`+`に、`_`を`/`に交換することを強制します。これは単純な貼り付けにしてはやや面倒な余分なステップです。両方の変種を受け付けることで、JWTのペイロードセグメントを、どちらのBase64変種になるか事前に知る必要も気にする必要もなく直接貼り付けられます。
デコードされた出力が読みやすいテキストでない場合
そもそもBase64でエンコードされたものすべてがテキストというわけではありません — 画像、暗号鍵、その他のバイナリデータも、同じテキスト安全性の理由でよくBase64エンコードされます。それらの1つをデコードすると、テキストとして解釈すると歪んだ判読不能な文字として表示される生のバイトが生成されます。これはデコードが失敗した兆候ではなく想定通りです: 操作は正しくエンコーディングを元に戻しましたが、基礎となるバイトはそもそもUTF-8テキストとして読まれることを意図していませんでした。
疑わしい文字列を素早く確認する方法
Base64らしき未知の文字列をここに貼り付けて読みやすい何かにデコードされるかを確認することは、それが実際に何であるか — 設定値、クッキー、予期しない場所で見つかったトークンの断片 — を調査する最初の素早いステップです。読みやすいJSONやプレーンテキストにきれいにデコードされる文字列は、それが本当にBase64エンコードされたデータであることを確認します。デコードで文字化けが生成される、あるいはそもそもBase64ではない文字列は、テキストではなくバイナリデータがBase64エンコードされているということであり、どちらのケースでも次に調査すべきことが絞り込まれます。
よくある質問
絵文字や他言語のテキストを処理できますか?
はい。テキストはBase64の前にUTF-8としてエンコードされ、これによってアクセント、中国語文字、絵文字が正しく往復変換されます。ブラウザの生の`btoa`の上に構築されたツールは、U+00FFを超える文字でエラーになります — これは非常によくあるバグです。
Base64URLとは何で、いつ必要ですか?
`+`を`-`に、`/`を`_`に置き換え、`=`パディングを取り除く変種で、これによりURLやファイル名の中で安全になります。JSON Web Tokenはこれを使います。標準のBase64はクエリ文字列に貼り付けると壊れます。
Base64は暗号化の一種ですか?
いいえ。Base64はバイナリデータをテキストのみのチャネルで運ぶために設計されたエンコーディングであり、誰でも瞬時に元に戻せます。パスワード、鍵、個人データを隠すために決して使わないでください。
なぜBase64の出力は入力より大きいのですか?
Base64は3バイトごとを4文字として表現するため、出力は常に約33%大きくなります。そのオーバーヘッドは、テキストとして安全に送信できることの代償です。