0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Base64の概要と仕組み

Last updated at Posted at 2025-01-17

Base64とは

Base64は、バイナリデータをテキスト形式に変換するための効率的な仕組みである。

1. 基本的な特徴

  • 6ビット単位でのデータ処理
  • 64種類の文字セットを使用(A-Z, a-z, 0-9, +, /)
  • ASCII文字の範囲内で安全な処理が可能

2. 文字セットの構成

  • 英大文字(A-Z): 26文字
  • 英小文字(a-z): 26文字
  • 数字(0-9): 10文字
  • 記号(+ と /): 2文字
  • パディング文字(=): 補完用

Base64変換対応表

バイナリ 文字 バイナリ 文字 バイナリ 文字 バイナリ 文字
000000 A 010000 Q 100000 g 110000 w
000001 B 010001 R 100001 h 110001 x
000010 C 010010 S 100010 i 110010 y
000011 D 010011 T 100011 j 110011 z
000100 E 010100 U 100100 k 110100 0
000101 F 010101 V 100101 l 110101 1
000110 G 010110 W 100110 m 110110 2
000111 H 010111 X 100111 n 110111 3
001000 I 011000 Y 101000 o 111000 4
001001 J 011001 Z 101001 p 111001 5
001010 K 011010 a 101010 q 111010 6
001011 L 011011 b 101011 r 111011 7
001100 M 011100 c 101100 s 111100 8
001101 N 011101 d 101101 t 111101 9
001110 O 011110 e 101110 u 111110 +
001111 P 011111 f 101111 v 111111 /

3. 変換プロセス

Base64変換の基本プロセス:

  1. 入力データのバイト列への変換
  2. バイト列の2進数(8ビット)表現への変換
  3. 2進数データの6ビット単位への分割
  4. パディング処理(必要な場合)
  5. 6ビット値のBase64文字へのマッピング
  6. パディング文字(=)の追加(必要な場合)

具体例:"Logto"の変換プロセス

4. データ変換の効率性

  • データ量増加の抑制
    • 3バイトのデータを4文字に変換する仕組みによる約33%の増加率
    • 例:「abc」(3文字)→「YWJj」(4文字)
  • 他方式との効率性比較
    • 16進数変換ではデータ量が2倍(100%増加)となる
      • 例:「abc」(3文字)→「616263」(6文字)
    • 6ビット単位の変換による増加率の抑制

5. 主な用途

  • 電子メール(MIME)添付ファイル
  • JSON/XMLのバイナリデータ埋め込み
  • URLパラメータでのデータ転送
  • JWT(JSON Web Token)

6. 利点

  • 全環境での安全な利用
  • 制御文字の排除
  • 印刷可能文字のみの使用
  • 各種プロトコルとの高い互換性
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?