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版ではデコードに不要なため省略されることが多いです。
関連ツール
最終更新: