当前位置: 首页 > 面试题库 >

如何使用海绵城堡为比特币曲线(secp256k1)创建ECDSA密钥对(256bit)?

谯翔
2023-03-14
问题内容

目前,我正在使用此方法创建keyPair

private  KeyPair getKeyPair() throws NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException {
    KeyPairGenerator keyGen = KeyPairGenerator.getInstance("ECDsA", "SC");
    ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp256k1");
    keyGen.initialize(ecSpec, new SecureRandom());
    return keyGen.generateKeyPair();
}

KeyPairGenerator 还有另一种方法,我可以指定keySize,但不确定如何传递keySpecs?

 public void initialize(int keysize, SecureRandom random)

问题答案:

您的代码已经足够,并且指定“ secp256k1”已经设置了正确的大小。该initialize(int, SecureRandom)方法是一种 替代
initialize(AlgorithmParameterSpec, SecureRandom);
您呼叫一个或另一个,而不是两个都呼叫。如果调用指定密钥大小的密钥(例如256),则BC提供程序将尝试选择正确大小的默认曲线(对于256,它将是“
prime256v1”或“ P-256”或“ secp256r1”)。




 类似资料:
  • 目前,我正在使用此方法创建keyPair 有另一种方法,我可以在其中指定keySize,但我不确定如何传递键值?

  • 问题内容: 我已经花了大约一个星期以上的时间来实现我想到的方法。我遇到(并阅读了)许多关于所有这些不同方法的文章,但是我仍然感到困惑,因此我希望有人可以传播他们对这些主题的知识,以便我可以更轻松地创建我所追求的方法并在Android中实现它。 我的“寻求”方法: 必须生成RSA公钥和私钥 公众必须具有PKCS#1填充 必须为RSA 2048 返回字节数组中的公钥 显然,您可以通过以下四种方法进行处

  • 更新:Git上提供了部分解决方案 编辑:此版本的编译版本可在https://github.com/makerofthings7/Bitcoin-MessageSignerVerifier 请注意,要验证的消息必须以< code >比特币签名消息:\n为前缀。源1源2 C#实现中有一些错误,我可能可以从这个Python实现中纠正 它似乎在实际提供正确的基58地址方面存在问题。 我有下面的消息、签名和

  • 我想知道如何在Azure密钥库中使用SECP256K1密钥,同时该密钥也是在区块链上创建帐户所必需的。 必须实现的目标 null 我已经在密钥库外生成了SECP256K1密钥对。因此,我有私钥和公钥作为字符串可用。我的想法是在Azure SDK for.NET wia的帮助下将私钥导入密钥库,下面的代码(使用的ECParameters来自Microsoft.Azure.keyvault.webke

  • 我正在努力从公钥的字符串表示创建ECDSA公钥,即 以前我发现我必须给这个键加上前缀' 04 ',所以不确定这次是否需要这样做? 我正在尝试生成它以用于验证签名 其中要签名的数据是 我现在的粗略代码如下 这是切碎在一起的,所以不能建造。任何帮助都很好 PS我在这里问了一个类似的关于私钥的问题给定曲线和私钥指数的ECDSA私钥的创建?

  • 我是新到cryptopp,并一直在努力为ECDSA签名创建私钥。 我有一个十六进制编码的私有指数。这存储为字符串。 我想用它来使用ECDSA签署文本块。我的代码看起来有点像这样 此代码在 Visual Studio 中生成以下错误,当我尝试执行 privateKey.load(...) 我猜我正在做一些有点愚蠢的事情...任何帮助都会很棒??? PS我在GMAC一代中使用ECDH时遇到了类似的问题