DEV

Base64エンコード/デコード — バイナリデータをテキストで送信

Base64はバイナリデータをASCII文字列に変換します。テキストとしてバイナリデータを送信する必要がある場所——メール添付・API認証・HTML/CSSの画像データURLで使われます。

Base64の仕組み

入力バイトを3バイト(24ビット)グループに分割し、各グループを6ビット×4に分けます。各6ビット値を64文字(A〜Z、a〜z、0〜9、+、/)の1つに変換します。出力は入力より約33%大きくなります。

Basic認証でのBase64

HTTP Basic認証はusername:passwordをBase64エンコードしてAuthorizationヘッダーで送信します。これは暗号化ではなくエンコードのみです——Base64はすぐにデコードできます。必ずHTTPSと組み合わせて使用してください。

Base64 vs. Base64url

標準のBase64は+と/を使いますが、URLで問題が起きます。Base64urlは-と_に置き換えます。JWTトークンはパディングなしのBase64urlを使用します。用途に合った種類を選択してください。