自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

他是中本聰?為什么連簡單的消息簽名都不用?

開發(fā) 開發(fā)工具
數字簽名使用橢圓曲線數字簽名算法(ECDSA),算法非常復雜,普通用戶不必掌握其算法的細節(jié),但你只要掌握了Bitcoin Core錢包軟件或類似工具,也可以非常輕松地生成簽名或驗證簽名。

 比特幣系統(tǒng)中可以給一串消息進行數字簽名,有三個作用:

  • 證明你擁有某筆資金的私鑰
  • 該證明是無可爭辯的、不可抵賴的
  • 簽名后的交易沒有被其他人修改過

數字簽名使用橢圓曲線數字簽名算法(ECDSA),算法非常復雜,普通用戶不必掌握其算法的細節(jié),但你只要掌握了Bitcoin Core錢包軟件或類似工具,也可以非常輕松地生成簽名或驗證簽名。

[[258229]]

生成簽名

在Bitcoin Core軟件的“文件”菜單下,點擊“消息簽名”菜單項,彈出一個對話框。分別填寫比特幣地址,消息文本,點擊“消息簽名”按鈕,則會在底部的簽名區(qū)出現(xiàn)一行文本,這段文本可以證明你擁有那個比特幣地址、那段消息是完整的、沒有被修改過一個字,這個證明誰都可以驗證、不可抵賴。

 

驗證簽名

在Bitcoin Core軟件的“文件”菜單下,點擊“驗證消息”菜單項,彈出一個對話框。分別填寫比特幣地址、消息文本、簽名文本,點擊“驗證消息簽名”按鈕,則會出現(xiàn)是否驗證成功的提示。

 

沒有安裝Bitcoin Core軟件也沒關系,很多網站都提供了驗證簽名的工具。比如:https://blockexplorer.com/messages/verify

 

再比如這個網站:

https://bitcotools.com/verify-messages

 

下面這個網址中列舉了幾十種簽名方法:

https://bitcointalk.org/index.php?topic=990345.0

截圖上文字顯示得不全,我的完整消息簽名是:

  • H0UP22YwxdZ0EyetmIoY72w/v1QGQiSk2vAf6jViHlw/DBC+76775pFqxGclbrkny4D40bVWe9nPLgl/MMWQyZs=

在NBitcoin 中進行消息簽名用2個函數就可以搞定,非常方便:

  • 生成簽名文本用 key.SignMessage(msg)
  • 驗證簽名用 addr.VerifyMessage(msg, sig)

就這樣簡單,完整源代碼:

  1. // 用私鑰給一個消息進行簽名 
  2. var msg = "我擁有這個地址的私鑰:17mKugcBDEJbu391Fq41AdwLeGHwJLPRDf"
  3. string priv = "3243F6A8885A308D313198A2E03707344A4093822299F31D0082EFA98EC4E6C8"
  4. Key k = new Key(Encoders.Hex.DecodeData(priv), -1, false); // 非壓縮密鑰 
  5. var sig = k.SignMessage(msg); 
  6. Console.WriteLine(sig); 
  7. // 結果: 
  8. // G2HBHn+ZmgTNtCnxMbgWf4nbXcTjB 
  9. // KFvy3am3UWcxdA0TD3MDdpqaZgEoY 
  10. // PsvbhR +OSZkR9hSp/rrO3nErlzBjY= 
  11.  
  12. // 驗證一個簽名 
  13. var addr = new BitcoinPubKeyAddress("17mKugcBDEJbu391Fq41AdwLeGHwJLPRDf"); 
  14. Console.WriteLine(addr.VerifyMessage(msg, sig)); 
  15.  
  16. // 驗證我以前用Bitcoin Core做過的一個簽名 
  17. var addr2 = new BitcoinPubKeyAddress("12j75TnvVhEVxk3fiaPSy3w4FVfjsKbKZm"); 
  18. var msg2 = "申龍斌的程序人生"
  19. var sig2 = "H0UP22YwxdZ0EyetmIoY72w/v1QGQiSk2vAf6jViHlw/DBC+76775pFqxGclbrkny4D40bVWe9nPLgl/MMWQyZs="
  20. Console.WriteLine(addr2.VerifyMessage(msg2, sig2)); 

Craig Steven Wright(CSW)一直聲稱他就是中本聰,為什么不拿創(chuàng)世區(qū)塊中的比特幣地址(1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa)對一段消息進行簽名?

[[258230]]

 

看來澳本聰就是一個騙子。

【本文為51CTO專欄作者“申龍斌”的原創(chuàng)稿件,轉載可通過作者微信公眾號(申龍斌的程序人生)獲取聯(lián)系】

 

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2024-11-04 09:26:42

RESTJavaAPI

2025-03-25 07:10:00

開發(fā)前端JavaScript

2020-06-22 08:16:16

哈希hashCodeequals

2011-06-15 09:59:09

Xserve蘋果服務器

2025-02-12 12:00:00

前端try-catchJavaScrip

2025-04-08 07:30:00

前端開發(fā)JavaScript

2021-09-06 08:59:00

程序員技能開發(fā)

2020-09-25 08:10:55

Rust系統(tǒng)編程

2021-11-18 11:23:09

微信WhatsAppAPP

2023-06-06 09:03:06

InnodbMySQL

2020-06-19 14:55:11

Kubernetes容器技術

2014-09-09 16:44:16

2011-09-01 16:11:43

ubuntu消息菜單

2017-12-15 14:10:20

深度學習本質邊緣識別

2019-03-11 08:36:11

Python代碼Flask

2020-05-06 22:43:09

筆記本塑料機身鋁鎂合金

2013-11-29 13:14:30

代碼網頁設計

2025-02-25 08:36:56

2015-02-26 15:06:52

思科

2021-05-06 06:53:39

DockerGoogleFacebook
點贊
收藏

51CTO技術棧公眾號