首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Guid C#生成比特币公/私钥

从Guid C#生成比特币公/私钥
EN

Stack Overflow用户
提问于 2021-11-13 13:05:10
回答 1查看 392关注 0票数 0

我有一个随机生成的128位guid (加密安全)。如何使用C#将其用作种子,为比特币生成公钥和私钥?通过种子,我的意思是每次我使用相同的guid作为输入时,它应该产生相同的公钥/私钥。

我看过NBitcoin,但不知道如何完成它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-13 14:54:17

您可以直接创建32个随机字节作为您的私钥。下面是一个例子。但这一点非常重要:这32个字节必须来自密码安全的伪随机生成器。例如,如果你使用C#内置的随机类,任何人都可以用普通的计算机恢复你的私钥。如果你计划在真实的比特币网络中使用它,你需要非常小心。我不确定Guid生成是否具有加密安全性。

代码语言:javascript
复制
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());
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69954526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档