[英]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());
}
您可以在此處找到如何從 Private 計算公鑰的信息https:\/\/bitcoin-math.000webhostapp.com<\/a>此外,您可以在沒有 NBitcoin 類密鑰的 C# 上找到加倍、加法和標量乘法函數,僅使用 BigInteger。
"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.