Base64をデコード
Base64を貼り付けると、元のデータに戻ります。テキスト、画像、PDF、何でも。壊れたパディング、折り返し、URLセーフ版はすべて自動で修正されます。データは保存されません。
- 保存しません
- 順番待ちなし
- 登録不要・透かしなし
Base64を貼り付けると、デコードした内容がここに表示されます。
使い方
Base64を貼り付け
折り返し付き、パディングなし、URLセーフ、PEMブロック入り、どれでも受け付け、行った修正はそれぞれ表示されます。
元の中身を確認
テキストはテキストとして表示されます。バイナリはそのバイト自体からPNG、PDF、ZIPなどと判別され、正しい拡張子でダウンロードできます。
コピーまたは保存
テキストをコピーするか、復元したファイルをダウンロードします。
何が出てくるか
Base64に入っているのはバイト列で、このページがそれをテキストとして表示するのは、何も置き換えずに有効なUTF-8としてデコードできる場合だけです。デコーダーは厳密モードで動くため、UTF-8でないバイト列は、置換文字だらけの画面ではなく、テキストなしという結果になります。これは意図的なものです。「?」入りのひし形が並んだ画面は結果のように見えて、結果ではないからです。テキストがない場合は、代わりにバイト列をダウンロードでき、拡張子は先頭の数バイト自体から読み取ります。PNG、JPEG、GIF、WebP、PDF、gzip、ZIP、RAR、7z、そして3種類のWebフォント形式を判別でき、ZIPは中身を見て.docx、.xlsx、.pptx、.epubと通常の圧縮ファイルを区別します。判別できず、テキストでもないものは.binとして返されます。
修正の仕組みは理解しておく価値があります。1つは規則ではなく推測だからです。改行の削除、PEMの囲み行の除去、不足したパディングの追加は、どれも曖昧さがありません。元の文字列はそれ以外にあり得ないからです。スペースはそうではありません。 偶然入った空白かもしれないし、途中でURLによってスペースに変わった「+」かもしれません。両方の解釈を「+」から先に試し、最初にデコードできたものを表示します。どちらでもデコードできる文字列では、どちらが意図されたものかを判断する手段はないため、結果を確認してから信用してください。2つの文字セットが混ざった文字列(「+」や「/」と「-」や「_」が同時にあるもの)は一切修正しません。正しい読み方が存在しないからです。
ほかの目的には
お使いのパソコンにすでにこの機能があります。macOSとLinuxなら base64 -d、Windowsなら certutil -decode、どこでも openssl base64 -d、あるいはPython 1行。どれもクリップボードではなくファイルを受け取り、Webページを介しません。今まさに有効な認証情報なら、どのサイトが何を約束していようと、このサイトも含め、そのほうが良い習慣です。このページの主張は本当ですが、それを確かめる方法は、この文章を読むことではなく、ページを読み込んだ後にネットワークを切断してもデコーダーが動き続けるのを見ることです。そして、確認できない場所に有効な秘密情報をすでに貼り付けてしまったなら、ローテーションしてください。ローテーションは1分で済みますが、安全だったかどうかを考え続けることには終わりがありません。
もう1つの限界はサイズです。文字列はテキストとして、結果はさらにバイト列として保持されるため、大きな画像のData URIはタブのメモリを何倍も占有します。数百MBのものは、コマンドラインのデコーダーならストリーム処理で難なくこなせても、ここでは失敗します。データベースのダンプの1列や、スタイルシートに含まれるすべてのData URIをデコードする場合も、理由は違えど答えは同じです。それは貼り付けではなく、スクリプトでやる仕事です。
よくある質問
Base64はどこかに保存されますか?
いいえ。何も保存されず、ログも残らず、サーバーが目にすることもありません。ネットワークを切断しても動作し続けます。この種のツールでは、これはおまけではありません。オンラインのエンコーダーやデコーダーに貼り付けられるものは、日常的に現役の情報です。セッショントークン、APIキー、Authorizationヘッダー、顧客データ。それをどこかへ送信するページに貼り付けることは、サイトが削除についてどう約束していようと、情報の開示です。
正しくコピーしたのに「有効なBase64ではありません」と表示されます
コピーした文字列が壊れる原因はよくある4つで、ここではどれも拒否せずに自動で修正します。メールヘッダー、PEMブロック、MIMEの折り返しによる改行は削除します。不足している=のパディングは追加します。URLセーフの文字セット(+と/の代わりに-と_)は検出して変換します。そしてスペースは両方の解釈を試します。偶然入った空白として、そしてURLによってスペースに変わった+として。後者はBase64がクエリ文字列を通るたびに起こることです。行った修正はそれぞれ結果に表示されるので、元の文字列が実際にどうだったかが分かります。それでも失敗する場合は、コピーの際に本当に文字が失われており、ページがどの文字かを示します。
JWTをデコードできますか?
各部分をデコードすることはできますが、それにはJWTデコードのページのほうが適しています。3つのセクションを分割し、JSONを整形し、タイムスタンプを実際の日時に変換し、トークンが期限切れかどうかも教えてくれます。有効なセッショントークンは、どこであれ汎用のデコーダーに貼り付けないでください。このサイトではどちらのページでも保存されることはありませんが、多くのサイトではそうではありません。
画像やPDFはどうなりますか?
形式が判別され、ダウンロードできるようになります。ファイルの種類は、あなたが指定した情報ではなく、デコードしたバイト自体(PNGのシグネチャ、PDFのヘッダー、ZIPのマーカー)から判別するため、元のファイル名がとうに失われていても、正しい拡張子でダウンロードできます。画像はページ上でプレビューされます。
結果に表示される「Base64URLとして読み取りました」とはどういう意味ですか?
文字列がURLセーフの文字セット、つまり+と/の代わりに-と_を使うものだったということです。JWT、OAuth、URLで運ばれるものすべてで使われる形式です。2つの文字セットは異なるバイト列にデコードされるため、取り違えるとエラーにならず黙ってデータが壊れます。そのため、決め打ちせずに検出して表示しています。
送られてきたものを安全にデコードできますか?
デコードそのものは安全です。何も実行されず、何も保存されません。ただし、出てきたものには注意してください。Base64は、悪意のあるスクリプトや実行ファイルをメールフィルターから隠すためによく使われる方法です。心当たりのない送り主からデコードしたファイルは、心当たりのない添付ファイルとまったく同じように扱ってください。
サイズの上限はありますか?
固定のサイズ上限ではなく、使用可能なメモリ次第です。長い文字列でも問題なくデコードできます。
ご注意: 出てくるのはバイト列で、バイト列は自分が何であるかを語りません。ファイルの種類はデータ先頭のマジックナンバーから推測します。一般的な形式なら確実ですが、それ以外については何も分かりません。もともと有効でないBase64はエラーにならず、意味のないデータにデコードされるため、結果が正しそうか確認してください。
このツールをあなたのサイトに設置
ブログ、授業のページ、ヘルプ記事などに無料で設置できます。コードを1つ貼り付けるだけで、訪問者がそのページ上でツールを使えるようになります。