Toolify

Base64 エンコード/デコード — UTF-8・URL Safe対応

テキストとBase64文字列を双方向変換。絵文字・日本語・中国語などUTF-8テキスト全般に対応し、JWT・OAuthで使われるURL Safe変種も切替可能。

エンコード結果
 

仕組み

Base64の仕組みと役割

Base64は任意のバイト列を64文字(A-Z・a-z・0-9・+・/、末尾に=パディング)で表現するエンコード方式です。画像バイト・暗号化ブロブ・署名トークンなどのバイナリデータを、JSONやHTML、メールヘッダーなどテキスト専用フォーマットに埋め込むための標準です。元データの約33%サイズ増になります。

Base64は「エンコード」であって「暗号化」ではありません。誰でもBase64文字列を元のバイトに戻せます。秘匿が必要な場合は別途暗号化アルゴリズム(AES/RSAなど)を使ってください。

URL Safe と標準形式の違い

標準Base64は「+」と「/」を使いますが、これらはURLで特別な意味を持つため、URLに含めるとパーセントエンコードが必要になります。URL Safe Base64(RFC 4648 §5)は「+」を「-」、「/」を「_」に置き換え、末尾の「=」パディングを省略します。JWT・OAuthトークンなどはこのURL Safe形式が標準です。

JWTやトークンを手動デコードする時はURL Safeをオンにしてください。古典的なメールやPDF埋め込みデータならオフのままでOKです。デコード時、URL Safeがオンなら標準形式も受け付けます。

UTF-8 の扱い

古いブラウザのbtoa()はASCIIしか扱えません。本ツールはTextEncoderで先に入力をUTF-8バイト列に変換してからBase64化します。これにより絵文字・日本語・中国語・アクセント付きラテン文字などすべてのUnicodeが正しくエンコード・往復変換できます。JWTライブラリや最近のフレームワークと同じ方式です。

よくある質問

Base64は暗号化ですか?

いいえ。バイナリをASCIIテキストに変換するエンコード方式です。誰でもデコードできるので、秘匿には必ず暗号化(AES等)を使ってください。

URL Safeは何が違う?

標準形式の「+」「/」がURLで特別な意味を持つため、URL Safeはこれらを「-」「_」に置き換えます。JWTで標準的に使われます。

JWTの署名部分をデコードできますか?

デコードすると署名のバイト列が得られますが、これは検証用で人が読むものではありません。JWTのヘッダー・ペイロード(最初の2セグメント)をデコードしてデータを確認してください。

バイナリファイルを変換できますか?

本ツールはテキスト入力のみです。ファイルにはバイナリ対応ツールをご利用ください(小さいファイルならブラウザDevToolsのatob/btoaも可)。

デコード結果が文字化けします

入力がBase64として不正、または非UTF-8バイトをエンコードしたものです(例: Shift-JISのテキスト)。元エンコーディングを確認してください。「テキストとしてデコード」はUTF-8を仮定します。

入力データはサーバーに送信されますか?

いいえ。すべてブラウザ内で処理されます。

サイズはどれだけ増えますか?

元の約33%増(3バイト → 4文字)。URL Safe(パディングなし)でも同じです。

パディング「=」の役割は?

標準Base64は出力長を4の倍数にするため末尾を「=」で埋めます。URL Safe版ではデコードに不要なため省略されることが多いです。

関連ツール

最終更新: