簡體   English   中英

"從 Guid C# 生成比特幣公鑰\/私鑰"

[英]Generate Bitcoin public/private key from Guid C#

我有一個隨機生成的 128 位 guid(加密安全)。 如何使用 C# 將其用作種子來生成比特幣的公鑰和私鑰? 通過種子,我的意思是每次我使用相同的 guid 作為輸入時,它應該產生相同的公鑰\/私鑰。

我看過 NBitcoin,但不明白如何實現它。

您可以直接創建 32 個隨機字節作為您的私鑰。 下面舉例。 但它非常重要:這 32 個字節必須來自加密安全的偽隨機生成器。 例如,如果您使用 C# 內置的 Random 類,任何人都可以使用普通計算機恢復您的私鑰。 如果你打算在真實的比特幣網絡中使用它,你需要非常小心。 我不確定 Guid 生成是否加密安全。

static void Main(string[] args)
{
    byte[] GetRawKey()
    {
        // private key=1 in this example
        byte[] data = new byte[32];
        data[^1] = 1;
        return data;
    }

    var key = new Key(GetRawKey()); // private key
    var pair = key.CreateKeyPair(); // key pair (pub+priv keys)
    var addrP2pkh = key.GetAddress(ScriptPubKeyType.Legacy, Network.Main); // P2PKH address
    var addrP2sh = key.GetAddress(ScriptPubKeyType.SegwitP2SH, Network.Main); // Segwit P2SH address
    Console.WriteLine(addrP2pkh.ToString());
    Console.WriteLine(addrP2sh.ToString());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM