努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


documents:other:other-053

BASE64

2017/05/05
自分用メモ

概要

データを6ビット毎に分割し、その値に対応する文字に変換するエンコード。
RFC4648( https://tools.ietf.org/html/rfc4648 )で定義されている。

例えば文字列“hgotoh.jp”は“aGdvdG9oLmpw”にエンコードされる。

文字 “h” “g” “o” “t” “o” “h” “.” “j” “p”
文字コード 0x68 0x67 0x6f 0x74 0x6f 0x68 0x2e 0x6a 0x70
01101000 01100111 01101111 01110100 01101111 01101000 00101110 01101010 01110000
分割 011010 000110 011101 101111 011101 000110 111101 101000 001011 100110 101001 110000
エンコード後 a G d v d G 9 o L m p w

24ビットを4分割し4文字にエンコードするが、分割して6ビットに満たない箇所は0のビットで埋め、4文字に満たない部分を“=“で埋める(パディング)
例えば、”jp”は“anA=“にエンコードされる。

文字 “j” “p”
文字コード 0x6a 0x70
01101010 01110000
分割 011010 100111 0000 → 000000
エンコード後 a n A =

種類

BASE64 はメールのMIMEパート等のデータ表現で適用、URL and Filename safe BASE64 はURLやファイル名等の”+“や”/“が特別の意味を持つ場所に適用する。

2進数 10進数 Base64 URL and Filename safe Base64
000000 0 A A
000001 1 B B
000010 2 C C
000011 3 D D
000100 4 E E
000101 5 F F
000110 6 G G
000111 7 H H
001000 8 I I
001001 9 J J
001010 10 K K
001011 11 L L
001100 12 M M
001101 13 N N
001110 14 O O
001111 15 P P
010000 16 Q Q
010001 17 R R
010010 18 S S
010011 19 T T
010100 20 U U
010101 21 V V
010110 22 W W
010111 23 X X
011000 24 Y Y
011001 25 Z Z
011010 26 a a
011011 27 b b
011100 28 c c
011101 29 d d
011110 30 e e
011111 31 f f
100000 32 g g
100001 33 h h
100010 34 i i
100011 35 j j
100100 36 k k
100101 37 l l
100110 38 m m
100111 39 n n
101000 40 o o
101001 41 p p
101010 42 q q
101011 43 r r
101100 44 s s
101101 45 t t
101110 46 u u
101111 47 v v
110000 48 w w
110001 49 x x
110010 50 y y
110011 51 z z
110100 52 0 0
110101 53 1 1
110110 54 2 2
110111 55 3 3
111000 56 4 4
111001 57 5 5
111010 58 6 6
111011 59 7 7
111100 60 8 8
111101 61 9 9
111110 62 + (プラス) - (ハイフン)
111111 63 / (スラッシュ) _ (アンダースコア)
documents/other/other-053.txt · 最終更新: 2023/04/14 02:32 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki