//// Why base-58 instead of standard base-64 encoding?// - Don't want 0OIl characters that look the same in some fonts and// could be used to create visually identical looking account numbers.// - A string with non-alphanumeric characters is not as easily accepted as an account number.// - E-mail usually won't line-break if there's no punctuation to break at.// - Doubleclicking selects the whole number as one word if it's all alphanumeric.//
base58, 此條目需要补充更多来源, 2014年1月26日, 请协助補充多方面可靠来源以改善这篇条目, 无法查证的内容可能會因為异议提出而移除, 致使用者, 请搜索一下条目的标题, 来源搜索, 网页, 新闻, 书籍, 学术, 图像, 以检查网络上是否存在该主题的更多可靠来源, 判定指引, 是用于比特幣, bitcoin, 中使用的一种独特的编码方式, 主要用于产生bitcoin的钱包地址, 相比base64, 不使用数字, 字母大写, 字母大写, 和字母小写, 以及, 符号, 设计主要的目的是, 避免混淆, 在. 此條目需要补充更多来源 2014年1月26日 请协助補充多方面可靠来源以改善这篇条目 无法查证的内容可能會因為异议提出而移除 致使用者 请搜索一下条目的标题 来源搜索 Base58 网页 新闻 书籍 学术 图像 以检查网络上是否存在该主题的更多可靠来源 判定指引 Base58是用于比特幣 Bitcoin 中使用的一种独特的编码方式 主要用于产生Bitcoin的钱包地址 相比Base64 Base58不使用数字 0 字母大写 O 字母大写 I 和字母小写 l 以及 和 符号 设计Base58主要的目的是 避免混淆 在某些字体下 数字0和字母大写O 以及字母大写I和字母小写l会非常相似 不使用 和 的原因是非字母或数字的字符串作为帐号较难被接受 没有标点符号 通常不会被从中间分行 大部分的软件支持双击选择整个字符串 以下引用自其作者中本聰 Satoshi Nakamoto 在base58 h中的注释 Why base 58 instead of standard base 64 encoding Don t want 0OIl characters that look the same in some fonts and could be used to create visually identical looking account numbers A string with non alphanumeric characters is not as easily accepted as an account number E mail usually won t line break if there s no punctuation to break at Doubleclicking selects the whole number as one word if it s all alphanumeric 编码 编辑一個Base58 字元 可以表示的位元數為Log258 displaystyle approx 5 858 bits 經過Base58編碼的數據為原始的數據長度的8 5 858 1 37 displaystyle tfrac 8 5 858 approx 1 37 倍 稍微多於Base64的1 33倍 編碼符號表 编码 字符 编码 字符 编码 字符 编码 字符0 1 16 H 32 Z 48 q1 2 17 J 33 a 49 r2 3 18 K 34 b 50 s3 4 19 L 35 c 51 t4 5 20 M 36 d 52 u5 6 21 N 37 e 53 v6 7 22 P 38 f 54 w7 8 23 Q 39 g 55 x8 9 24 R 40 h 56 y9 A 25 S 41 i 57 z10 B 26 T 42 j11 C 27 U 43 k12 D 28 V 44 m13 E 29 W 45 n14 F 30 X 46 o15 G 31 Y 47 p由於256不能被58所整除 Base58無法像Base64那樣子轉換為8位元的二進位後依次取出6位元 就可以快速完成轉換 因此 Base58編碼演算法需要除法運算實現 如果被編碼的數據較長 則要用特殊的class來處理大數 在Bitcoin使用了OpenSSL中的BIGNUM code string 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz x convert bytes to big integer hash result output string while x gt 0 x remainder divide x 58 output string append code string remainder repeat number of leading zero bytes in hash output string append code string 0 output string reverse 外部链接 编辑http www bitcoin org 页面存档备份 存于互联网档案馆 https en bitcoin it wiki Base58Check encoding 页面存档备份 存于互联网档案馆 参见 编辑Base64 取自 https zh wikipedia org w index php title Base58 amp oldid 70820382, 维基百科,wiki,书籍,书籍,图书馆,