摘要:是由中本聰為設計的。在編碼后的字符串中,每一個字符都是從個字符中當中選擇出來的。換句話說,每一個字母代表的信息量是。我們輸入的字節流信息量是固定的那么,需要預留的字符數量就是經過換算,最后,還需要加向上取整最終結果就是
base58 是由中本聰為bitcoin設計的。
相比與base64的字符,他將一些直觀看來模糊的字符去除了。
字符共58個
1-9 共9個
大寫字母A-Z(不包括O、I),共24個
小寫字母a-z (不包括l),共25個
在一些base58的實現代碼中,我們往往需要為生成的編碼后的字符串預留空間,這是如何計算的呢?
例如一段源碼及注釋:
std::vectorb58((pend - pbegin) * 138 / 100 + 1); // log(256) / log(58), rounded up
這個公式看起來有點讓人摸不著頭腦,但經過一些思考,我想明白了。
在編碼后的字符串中,每一個字符都是從58個字符中當中選擇出來的。那么這58種不同的信息可以用多少bit來代替呢?顯然答案是log(2)58。換句話說,每一個字母代表的信息量是log(2)58 bit。
我們輸入的字節流信息量是固定的:(byte_length * 8)bit
那么,需要預留的字符數量就是(byte_length * 8)/ log258
經過換算,
(byte_length * 8)/ log258 =
(byte_length * log2256) / log258 =
byte_length * 1.38
最后,還需要加向上取整
最終結果就是 byte_length * 1.37 + 1
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24122.html
摘要:公鑰上面生成的密鑰的公共部分被編碼為比特幣地址。使用對地址進行編碼我們現在使用庫中的方法來獲得最終的比特幣地址。這是比特幣應在交易中發送到的地址。這是一個如何在中生成比特幣地址的演示文稿。 讓我們通過學習比特幣(Bitcoin)如何實施該技術的各個方面來工作,好嗎?該技術包括以下幾個方面: 比特幣地址bitcoin address是用來發送和接收比特幣的。 交易transaction...
摘要:公鑰上面生成的密鑰的公共部分被編碼為比特幣地址。使用對地址進行編碼我們現在使用庫中的方法來獲得最終的比特幣地址。這是比特幣應在交易中發送到的地址。這是一個如何在中生成比特幣地址的演示文稿。 讓我們通過學習比特幣(Bitcoin)如何實施該技術的各個方面來工作,好嗎?該技術包括以下幾個方面: 比特幣地址bitcoin address是用來發送和接收比特幣的。 交易transaction...
摘要:本質上,比特幣錢包就是一對這樣的密鑰。例如,一個錯誤比特幣地址就不會被錢包認為是有效的地址,否則這種錯誤會造成資金的丟失。 showImg(https://segmentfault.com/img/remote/1460000013982997?w=1920&h=1053); 最終內容請以原文為準:https://wangwei.one/posts/f90... 引言 在 上一篇 文...
閱讀 1859·2021-09-22 15:29
閱讀 3351·2019-08-30 15:44
閱讀 3558·2019-08-30 15:43
閱讀 1763·2019-08-30 13:48
閱讀 1489·2019-08-29 13:56
閱讀 2474·2019-08-29 12:12
閱讀 965·2019-08-26 11:35
閱讀 1051·2019-08-26 10:25