このページのコードが起動しませんでした。

index.htmlをフォルダから直接開くと、ブラウザがJavaScriptモジュールを読み込めません。そのためファイルを選んでも何も起きません。フォルダはhttpで配信してください。

powershell -ExecutionPolicy Bypass -File serve.ps1

そのうえでhttp://localhost:8080/を開いてください。

Base64エンコーダー・デコーダー — URL・HTMLエンティティ・16進・エスケープも

Base64、パーセントエンコード、HTMLエンティティ、16進、バックスラッシュのエスケープを双方向で。よそのサーバーに貼り付けるものは何もありません。

言語: 日本語
ソースを見る
テキストはブラウザー内で処理されます。処理のためのアップロードはありません。

ここにあるどのエンコードも文字列に対する計算で、このページの中で行われます。コーデックは手書きでsrc/encode.jsにあります。それ以外は何もありません。この道具にはどんなネットワーク機能もありません。取りに行く先も、送る先もありません。それがほぼどこよりも効いてくるのがここです。人がオンラインのBase64デコーダーに貼り付けるものはトークンで、トークンを他人のサイトに貼り付けるのは、相手に手渡すのと同じことだからです。

いまの通信: 確認中…

オフライン: 確認中…

鵜呑みにする必要はありません。DevToolsの「ネットワーク」タブを開いたまま何かをデコードしてみてください。貼り付けた内容の1文字も、どのリクエストにも載りません。回線を抜いてからデコードしてみるのでも構いません。

1 エンコードを選ぶ

どちら向きか

2 貼り付ける

空

3 結果を持ち出す

まだ何もありません。

 

Markdownで表示

Base64をアップロードせずにエンコード・デコードする手順

  1. エンコードを選びます。2つのアルファベットのBase64、値1つまたはURL全体のパーセントエンコード、5つのHTMLエンティティ、16進のバイト、そして文字列リテラルのバックスラッシュのエスケープ。メニューの下の説明が、それぞれの用途を教えてくれます。
  2. 向きを選びます。エンコードは平文を受け取ってエンコード済みの形を作り、デコードはエンコード済みの形を平文に戻します。結果は入力に付いてくるので、向きの切り替えはクリック1回、打ち直しはありません。
  3. 貼り付けるか、ファイルをドロップします。選択してコピーできるものなら何でも構いません。選択欄に落としたファイルはお使いのブラウザが読んで欄に入れます。省略できるアップロードの段階が、そもそもありません。
  4. エラーが出たら読みます。ここで失敗するデコーダーは、何を見つけたかを言います。Base64が使わない文字、間違った位置のパディング、テキストではないバイト。それらしくて間違ったものを返す代わりにです。
  5. 結果を持ち帰ります。コピーするか、テキストファイルとしてダウンロードしてください。欄の下のカウンターが、何バイト入って何バイト出たかを教えてくれます。

詳しい解説

Base64は暗号化ですか? いいえ。そしてその違いは実務で効いてきます。符号化と暗号化とハッシュは三つの別の問題を解きます。ひとつは誰でも戻せて、ひとつは鍵の持ち主だけが戻せて、ひとつは誰にも戻せません。どれがどれか、見た目での見分けかたと一緒に。

よくある質問

テキストはどこかにアップロードされますか?

いいえ。このページのエンコーダーもデコーダーも、お使いのブラウザの中で、お手元のハードウェアで動く関数です。この道具にはどんなネットワーク機能もありません。何かを取りに行くことも、送ることもありません。ページのContent-Security-Policyには接続してよいアドレスがすべて書かれていて、そのどれもこのサイトのものではありません。アクセストークンやセッションのクッキーをここで扱う理由はそれです。そういうものを他人のデコーダーに貼り付けるのは、相手に渡すのと同じことだからです。

ここのBase64は、ほかと同じBase64ですか?

同じです。自分自身とではなく、RFC 4648のテストベクトルと突き合わせて確かめています。どちらのアルファベットもデコードできるので、-と_で書かれたJWTも、+と/のものと同じように読めます。64文字で折り返された入力は、こちらでつなぎ直します。エンコードはUTF-8のバイト単位なので、アクセント付きの文字も絵文字も往復して無事です。

Base64は暗号化ですか?

いいえ。そう思い込むのが典型的な間違いです。Base64は綴り方です。同じバイト列を、URLでもメールでもJSONの文字列でも生き残るアルファベットで書いたものにすぎません。誰でも読み戻せます。このページは1ミリ秒でやります。つまり何も隠さず、何も守りません。手元にあるものが秘密なら、エンコードの前に本物の暗号化が必要です。代わりにではなく。

デコードはなぜ失敗したのですか?

貼り付けたものが、コーデックに伝えたとおりのものと少し違うからで、エラーはどこが違うかを言います。Base64のアルファベットにない文字、間違った位置のパディング、後ろに16進2桁のないパーセント記号、あるいはBase64からは解けてもUTF-8のテキストではないバイト列。最後のものはたいてい、元が文字列ではなくファイルだったという意味です。ブラウザのatobなら代わりにそれらしい何かを返していたでしょう。教えてもらえること自体が、デコーダーに何かを貼り付ける意味のすべてです。

2つのウェブアドレス用エンコードは何が違うのですか?

値1つか、アドレス全体かです。値1つのエンコードは、URLが意味を持たせるものすべて(スラッシュ、疑問符、アンパサンド)をエスケープします。クエリ文字列のパラメーター1つに欲しいのはこれです。URL全体のエンコードはアドレスを動くままにします。スラッシュと?は残り、URLがそもそも運べない文字だけがエスケープされます。前者をアドレス全体に使うとアドレスが壊れ、後者を値に使うと値の終わりがどこか分からなくなります。

どれくらい大きいファイルまで扱えますか?

ここに上限は設けていません。その費用を払うサーバーが存在しないからです。実際の頭打ちはお使いの端末です。数メガバイトのテキストなら問題ありません。とても長い文書では、キーボードを取り合う代わりに、入力が一息つくのを待ってからエンコードし直します。

無料ですか。アカウントは必要ですか?

無料です。アカウントも、ログインも、試用期間もなく、貼り付けられる量にも制限はありません。このサイトには広告があり、それが費用を賄っています。広告にテキストの情報が渡されることはありません。

オフラインでも動きますか?

動きます。ページを一度読み込んでから通信を切っても、そのまま使えます。何もアップロードされていないことを示す、いちばん簡単な方法でもあります。デコードのためにテキストをどこかへ送っている道具なら、線を抜いた瞬間に止まるからです。