メインコンテンツへスキップ

Base64エンコード/デコード

テキストとBase64を相互変換。日本語(UTF-8)・URLセーフ形式に対応。ブラウザ内処理で安全。

形式

処理はブラウザ内で完結し、入力内容は外部に送信されません。

このツールの使い方

  1. 変換したい文字列を入力する
  2. 「Base64にエンコード」または「テキストにデコード」を押す
  3. 必要に応じて標準/URLセーフ形式を切り替える
  4. 結果をコピーする(「入替」で入力と結果を入れ替え可能)

Base64の仕組み — なぜ約1.33倍になるのか

Base64は、任意のバイト列を A-Z a-z 0-9 + / の64種類の文字だけで表す方式です。3バイト(24ビット)を6ビットずつ4つに区切り、4文字に変換します。3バイトが4文字になるため、データ量は約 4/3=1.33倍 に増えます。 端数は末尾の =(パディング)で調整します。

"Man" → 01001101 01100001 01101110 → 010011 010110 000101 101110 → TWFu

バイナリを「テキストしか通れない経路」に安全に載せるための仕組みで、圧縮でも暗号化でもありません。

よくある用途

  • データURI:小さな画像やフォントをHTML/CSSに data:image/png;base64,... として埋め込み、HTTPリクエストを減らす
  • Basic認証:Authorization: Basic ヘッダの ユーザー名:パスワード をBase64化(=暗号化ではないのでHTTPS必須)
  • メール(MIME):添付ファイルや日本語本文をテキスト経路で送るためにエンコード
  • JWT:ヘッダ・ペイロードをURLセーフBase64で連結(中身は誰でもデコード可能)

標準形式とURLセーフ形式の違い

項目標準URLセーフ
62番目の文字+-
63番目の文字/_
末尾のパディング= を付ける省略することが多い
主な用途メール・データURIURL・クエリ・JWT・ファイル名

+/ はURLで特別な意味を持つため、URLに載せるときはURLセーフ形式を使います。このツールは両形式を切り替えられます。

つまずきやすいポイント

  • 暗号化ではない:Base64は誰でも元に戻せます。パスワードやトークンの「保護」にはならず、通信の秘匿にはHTTPSや暗号化を使ってください。
  • 日本語の文字化け:マルチバイト文字はまずUTF-8のバイト列にしてからBase64化する必要があります(このツールは自動でUTF-8処理します)。素朴な btoa() は日本語で例外になります。
  • サイズが増える:約1.33倍になるため、大きなファイルをデータURIで埋め込むとHTMLが重くなります。大画像は通常のファイル参照が有利です。
  • 改行の混入:メール用のBase64は76文字ごとに改行が入ることがあり、そのままデコードすると失敗する場合があります。

言語別のエンコード例

JavaScriptbtoa(unescape(encodeURIComponent(s)))
Pythonbase64.b64encode(s.encode())
PHPbase64_encode($s)
Linux CLIecho -n 'text' | base64

関連ツール

広告

関連ツール

一緒によく使われます