開発者のための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