密码学系列 - Base58编码

Base58

Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+“和”/"符号。
设计Base58主要的目的是:

  1. 避免混淆。在某些字体下,数字0和字母大写O,以及字母大写I和字母小写l会非常相似。
  2. 不使用"+“和”/"的原因是非字母或数字的字符串作为帐号较难被接受。
  3. 没有标点符号,通常不会被从中间分行。
  4. 大部分的软件支持双击选择整个字符串。

比特币地址为什么要用base58编码

比特币私钥最原始的格式是256位的二进制表示,采用了base58编码的方式来“缩短”它,更短更省空间

  • 私钥生成: WIF格式 | Base58并压缩 | 字符串长度52 (不算0x)
  • 从私钥生成公钥: ECDSA-secp256k1 | 未压缩: 前缀04+x坐标+y坐标 | 压缩: 前缀03+x(如果y是奇数),前缀02+x(如果y是偶数)
  • 从公钥生成地址: Base58 | RipeMD160(SHA256(PubK))
发布了59 篇原创文章 · 获赞 67 · 访问量 8901

猜你喜欢

转载自blog.csdn.net/wcc19840827/article/details/104058988