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を使用します。用途に合った種類を選択してください。