Bitcoin 地址原理(1)Base58编码

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个字节作为校验码。
.结果由三部分组成:前缀、数据和校验码。


在这里插入图片描述

  • 校验码由编码数据的哈希值而来。
  • 具有错误诊断功能。
  • 基于文本的二进制编码格式,不仅实现了数据压缩,保持了易读性

猜你喜欢

转载自blog.csdn.net/thefist11cc/article/details/114359412