開発者のためのBase64エンコーディング
CSSやJWTトークンでBase64を使用しますが、その仕組みを理解しておく必要があります。
Base64はバイナリデータをテキスト文字列に変換します。64種類の文字セットを使用しており、これにはA-Z、a-z、0-9、+、/が含まれます。「=」記号はパディングに使用されます。
Base64はエンコーディングであり、暗号化ではありません。セキュリティ目的には決して使用しないでください。
仕組み:
- バイナリデータを3バイトずつのグループに分割します。
- これらを4つの6ビットのチャンクに分割します。
- 各チャンクを文字にマッピングします。
主な用途:
- メールの添付ファイル。
- HTMLやCSS内の画像。
- JWTトークン。
- APIレスポンス。
- Basic認証ヘッダー。
コーディング例:
文字列をエンコードするには btoa を使用します。
文字列をデコードするには atob を使用します。
Node.jsでは data.toString('base64') を使用します。
Base64urlはURL用の特殊なバージョンです。「+」を「-」に、「/」を「_」に置き換え、パディングを削除します。JWTにはこれを使用してください。
以下の点に注意してください:
- 出力サイズは元のデータより33%大きくなります。
- テキストのみのチャネルに使用してください。
- URLにはBase64urlを使用してください。
出典: https://dev.to/moksh/base64-encoding-explained-a-practical-guide-for-developers-49hh