Base64 인코드 및 디코드 함수

Base64는 특정 MIME 컨텐츠 전송 인코딩을 가리킵니다. Base64 인코딩은 대소문자 구분이 필요하지만 사용자가 읽기 불가능해도 상관없는 양식에서 옥테트의 임의 순서를 나타냅니다.

US-ASCII의 65자 서브세트가 사용되며, 인쇄 가능한 문자당 6비트를 나타낼 수 있습니다. 65번째 문자는 "="이며, 특수 처리 함수를 나타내는 데 사용됩니다.

인코딩 프로세스는 입력 비트의 24비트 그룹을 인코딩된 4개 문자의 출력 문자열로 나타냅니다. 왼쪽에서 오른쪽으로 진행하면서, 3개의 8비트 입력 그룹을 연결하여 24비트 입력 그룹이 형성됩니다. 그런 다음 이러한 24비트를 4개의 연결된 6비트 그룹으로 취급하여, 각각이 기본 64개 알파벳의 단일 숫자로 변환됩니다.

각각의 6비트 그룹은 64개 인쇄 가능한 문자의 배열에 색인으로 사용됩니다. 색인으로 참조된 문자가 출력 문자열에 배치됩니다.

Base64 알파벳

Value Encoding  Value Encoding  Value Encoding  Value Encoding
          0 A            17 R            34 i            51 z
          1 B            18 S            35 j            52 0
          2 C            19 T            36 k            53 1
          3 D            20 U            37 l            54 2
          4 E            21 V            38 m            55 3
          5 F            22 W            39 n            56 4
          6 G            23 X            40 o            57 5
          7 H            24 Y            41 p            58 6
          8 I            25 Z            42 q            59 7
          9 J            26 a            43 r            60 8
         10 K            27 b            44 s            61 9
         11 L            28 c            45 t            62 +
         12 M            29 d            46 u            63 /
         13 N            30 e            47 v
         14 O            31 f            48 w         (pad) =
         15 P            32 g            49 x
         16 Q            33 h            50 y
인코딩할 데이터의 끝에서 24비트보다 적게 사용 가능하면 특수 처리가 수행됩니다. 전체 인코딩 할당량(quantum)은 항상 수량의 끝에서 완료됩니다. 입력 그룹에서 24개 입력 비트보다 적게 사용 가능하면, 0비트가 (오른쪽에) 추가되어 6비트 그룹의 정수를 형성합니다. 데이터 끝의 채우기는 '=' 문자를 사용하여 수행됩니다. 모든 Base 64 입력은 옥테트의 정수이므로, 다음과 같은 경우에만 발생할 수 있습니다.
  • 인코딩 입력의 최종 할당량(quantum)이 24비트의 배수이고, 여기서 인코딩된 출력의 최종 단위는 "=" 채우기가 없는 4자의 배수입니다.
  • 인코딩 입력의 최종 할당량(quantum)이 정확히 8비트이고, 여기서 인코딩된 출력의 최종 단위는 두 개의 문자 뒤에 두 개의 "=" 채우기 문자가 추가됩니다.
  • 인코딩 입력의 최종 할당량(quantum)이 정확히 16비트이고, 여기서 인코딩된 출력의 최종 단위는 세 개의 문자 뒤에 하나의 "=" 채우기 문자가 추가됩니다.



피드백 | 주의사항


시간소인 아이콘 마지막 업데이트 날짜: 2013년 11월 6일 수요일