私鑰 公鑰和位址

2021-09-07 19:36:03 字數 1347 閱讀 1562

私鑰、公鑰和位址是如何生成的?

大體來說,位址的生成的流程是:私鑰 -> 公鑰 -> 位址。因此位址的生成需要三步:

1. 生成乙個隨機的私鑰(32位元組)

2. 通過私鑰生成公鑰(64位元組)

3. 通過公鑰得到位址(20位元組)

私鑰的生成

私鑰是一組64位的16進製制字元,通過私鑰我們能夠訪問乙個賬戶。以太坊的私鑰生成是通過secp256k15曲線生成的,secp256k1是乙個橢圓曲線演算法,位元幣使用的也是相同的曲線演算法。

通過openssl6我們可以生成乙個橢圓曲線私鑰:

$ openssl ecparam -name secp256k1 -genkey -noout

-----begin ec private key-----

mhqcaqeeicgltppqinj0r/jaa7+bjf1twir3rdldochsq98l5fmwoacgbsubbaak

ouqdqgaerynscthxq2n4ahkfp08s/qnogzetvcfqe/xtvpjsnieqezgjiob+liyl

uf8pierbe1cjvcs5llu+fzz+b31+bg==

-----end ec private key-----

公鑰的生成

其實,通過openssl我們可以同時得到私鑰和公鑰:

$ openssl ecparam -name secp256k1 -genkey -noout | openssl ec -text -noout

read ec key

private-key: (256 bit)

priv:

3f:64:bb:20:0a:b5:82:e9:73:03:8a:8b:79:68:62:

41:8b:98:a7:10:00:fb:50:de:c4:4d:0d:06:3d:a2:

ed:cd

pub:

04:4a:18:c2:c7:40:f4:9a:77:b2:89:e9:27:0c:39:

94:8b:94:10:a1:b0:c9:81:d9:af:06:8c:06:23:93:

63:d7:26:82:fd:b0:22:fe:f6:7f:4f:8a:69:58:2f:

98:3a:b3:94:ab:5f:06:85:4c:25:f3:3d:8e:f1:35:

2f:e7:fe:50:4d

asn1 oid: secp256k1

位址的生成

位址是通過對上述的公鑰做keccak-256雜湊7,然後取最後的40位16進製制字元得到的。我們對上述的公鑰做雜湊後並取後40位的結果是:0x24602722816b6cad0e143ce9fabf31f6026ec622。得到的該結果就是乙個有效的以太坊位址。

公鑰 私鑰 公鑰私鑰

小明想寫一封情書給小紅,但是這封情書是很私密的東西,小明不想讓除了小紅之外的其他人知道。小明看過flydean的部落格,他知道了有個對稱加密的好東西。於是小明想,如果我將情書使用對稱加密演算法進行加密,然後再把加密後的情書傳給小紅豈不就是安全了?但是小明又仔細思考了一下,發現了乙個問題,對稱加密演算...

公鑰和私鑰

1,公鑰和私鑰成對出現 2,公開的金鑰叫公鑰,只有自己知道的叫私鑰 3,用公鑰加密的資料只有對應的私鑰可以解密 4,用私鑰加密的資料只有對應的公鑰可以解密 5,如果可以用公鑰解密,則必然是對應的私鑰加的密 6,如果可以用私鑰解密,則必然是對應的公鑰加的密 假設一下,我找了兩個數字,乙個是1,乙個是2...

公鑰和私鑰

1.鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰。2.鮑勃把公鑰送給他的朋友們 帕蒂 道格 蘇珊 每人一把。3.蘇珊要給鮑勃寫一封保密的信。她寫完後用鮑勃的公鑰加密,就可以達到保密的效果。4.鮑勃收信後,用私鑰解密,就看到了信件內容。這裡要強調的是,只要鮑勃的私鑰不洩露,這封信就是安全的,即使落在別人手...