1. Base64编码
使用了26个小写字母、26个大写字母、10个数字以及两个符号(例如“+”和“/”),用于在电子邮件这样的基于文本的媒介中传输二进制数据。
- 常用于编码邮件中的附件。
Base64字母表
索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 | 索引 | 对应字符 |
---|---|---|---|---|---|---|---|
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 | ||
15 | P | 32 | g | 49 | x | ||
16 | Q | 33 | h | 50 | y |
eg.
转换前 10101101,10111010,01110110
转换后 00101011, 00011011 ,00101001 ,00110110
十进制 43 27 41 54
对应码表中的值 r b p 2
2. Base58编码
是Base64编码格式的子集,同样使用大小写字母和10个数字,,由不包括(0,O,l,I,+,/)的大小写字母和数字组成。(容易引起混淆:0(数字0)、O(大写字母o)、l(小写字母L)、I(大写字母i)。
- 字母表:123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
3. Base58Check
基于Base58增加了长4个字节的错误校验码。
. checksum=SHA256(SHA256(prefix+data))
. 取checksum的前4个字节作为校验码。
.结果由三部分组成:前缀、数据和校验码。
- 校验码由编码数据的哈希值而来。
- 具有错误诊断功能。
- 基于文本的二进制编码格式,不仅实现了数据压缩,保持了易读性