documents:code:code-002
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/code/code-002.txt · 最終更新: 2024/04/14 10:41 by k896951