btc地址生成c語言6
發布時間: 2024-10-18 00:43:37
① 離線生成的比特幣地址是如何避免沖突的
BTC的地址生成過程如下,完整的可以查一下比特幣中文維基:
比特幣地址的生成過程
(說明: 有些數字以"0x"開頭,意思是此數字使用十六進製表示法。"0x"本身沒有任何含義,它是C語言流傳下來的,約定俗成的寫法,比如0xA就是十進制的10。另外,1個位元組 = 8位二進制 = 2位十六進制)。
第一步,隨機選取一個32位元組的數、大小介於1 ~ 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141之間,作為私鑰。
第二步,使用橢圓曲線加密演算法(ECDSA-secp256k1)計算私鑰所對應的非壓縮公鑰。 (共65位元組, 1位元組 0x04, 32位元組為x坐標,32位元組為y坐標)關於公鑰壓縮、非壓縮的問題另文說明。
第三步,計算公鑰的 SHA-256 哈希值
第四步,取上一步結果,計算 RIPEMD-160 哈希值
第五步,取上一步結果,前面加入地址版本號(比特幣主網版本號「0x00」)
00
第六步,取上一步結果,計算 SHA-256 哈希值
第七步,取上一步結果,再計算一下 SHA-256 哈希值(哈哈)
第八步,取上一步結果的前4個位元組(8位十六進制)
D61967F6
第九步,把這4個位元組加在第五步的結果後面,作為校驗(這就是比特幣地址的16進制形態)。
00D61967F6
第十步,用base58表示法變換一下地址(這就是最常見的比特幣地址形態)。
熱點內容