【问题标题】:How to import a bitcoin private key to BigInteger?如何将比特币私钥导入 BigInteger?
【发布时间】:2020-02-13 06:38:30
【问题描述】:

我使用以下代码尝试导入比特币私钥并计算公钥。计算出的 ECPublicKey 不等于 bitcoinPublicKey。如何纠正?

string bitcoinPrivateKeyStr = "cVnb9S9GgHxsBxfaApvGnWvfwqXRYdV8f1Q2CkQeBa4EsWTNmsGS";
BitcoinSecret bs = new BitcoinSecret(bitcoinPrivateKeyStr);
byte[] bitcoinPrivateKeyBytes = bs.PrivateKey.ToBytes();
byte[] bitcoinPublicKeybytes = bs.PubKey.Decompress().ToBytes();

X9ECParameters curve = SecNamedCurves.GetByName("secp256k1");
ECDomainParameters domain = new ECDomainParameters(curve.Curve, curve.G, curve.N, curve.H);
BigInteger BCPrivateKeyBI = new BigInteger(bitcoinPrivateKeyBytes);
Org.BouncyCastle.Math.EC.ECPoint q = domain.G.Multiply(BCPrivateKeyBI);
ECPrivateKeyParameters ECPrivateKey = new ECPrivateKeyParameters(BCPrivateKeyBI, domain);
ECPublicKeyParameters ECPublicKey = new ECPublicKeyParameters(q, domain);
AsymmetricCipherKeyPair KeyPair = new AsymmetricCipherKeyPair(ECPublicKey, ECPrivateKey);

【问题讨论】:

    标签: c# bouncycastle bitcoin encryption-asymmetric ecdh


    【解决方案1】:
    BigInteger BCPrivateKeyBI = new BigInteger(1, bitcoinPrivateKeyBytes);
    

    【讨论】:

    • 谁能帮我解释一下原因?
    猜你喜欢
    • 2014-01-17
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多