Base64 エンコード・デコード

Base64 は任意のデータを文字・数字といくつかの記号だけで書き直す方式です。だからテキストしか通れない経路を渡れます。JSON の 1 項目、スタイルシート内の data URI、メール添付のヘッダー、Kubernetes のシークレットといった場所です。このツールは入力したテキストとファイル全体を双方向に変換し、クエリ文字列で壊れる 2 文字を置き換えた URL セーフ形式も作れます。この処理が手元で完結する点が要です。人が復号する文字列はたいていトークン・鍵・秘密の値であり、それをサーバーへ送るサイトに貼るのは、そのまま渡してしまうことだからです。

Base64 に変換して戻す手順

  1. 値を入力するなら「テキスト」、端末のファイルを変換するなら「ファイル」を選びます。
  2. 「エンコード」と「デコード」を切り替えます。テキストでは入力するそばから結果が更新されます。
  3. 値が URL やファイル名に入るなら「URL セーフ」を有効にします。+ と / を別の文字に置き換え、末尾の詰め文字を落とします。
  4. 結果をコピーするか、ファイルではデコードしたバイト列をファイルとしてダウンロードします。

Base64 についてよくある質問

入力したデータはどこかに送られますか?

送られません。エンコードもデコードもブラウザ内蔵の機能でページ内で処理します。記録も保存も送信もしないので、トークンをここで復号しても安全です。

Base64 は暗号化ですか?

違います。ここが大事です。エンコードであって暗号ではないため、誰でも鍵なしで即座に戻せます。base64 の文字列をパスワードや秘密を隠す手段だと思わないでください。文字の集合が変わるだけで、読みにくくはなりません。

URL セーフとはどういう意味ですか?

標準の base64 は + と / を使いますが、URL の中でこれらは別の意味を持ち、= の詰め文字もよく削られます。URL セーフ形式ではそれらを - と _ で書き、詰め文字を省くので、クエリ文字列・パス・ファイル名に置いても値が壊れません。復号のときはどちらの形式も受け付けます。

エンコードするとなぜファイルが大きくなるのですか?

Base64 は 3 バイトを 4 文字で表すので出力はおよそ 33% 大きくなり、改行が入るとさらに増えます。その余分が、バイナリをテキスト専用の経路で送るために払う代価です。

デコードしたら「テキストではない」と出ました。

バイト列が正しい UTF-8 ではないからです。画像や PDF のようなバイナリを復号した場合です。ファイルに切り替えれば、そのバイト列を画面に出す代わりにファイルへ書き出します。

Other tools

Languages