gpt4 book ai didi

java - BouncyCaSTLe 上的椭圆曲线与数字签名算法 (ECDSA) 实现

转载 作者:行者123 更新时间:2023-12-01 04:28:13 46 4
gpt4 key购买 nike

我正在尝试实现 ECDSA(椭圆曲线数字签名算法),但我在 Java 中找不到任何使用 Bouncy CaSTLe 的示例。我创建了 key ,但我真的不知道应该使用什么样的函数来创建签名并验证它。

public static KeyPair GenerateKeys()
throws NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException
{
ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("B-571");
KeyPairGenerator g = KeyPairGenerator.getInstance("ECDSA", "BC");
g.initialize(ecSpec, new SecureRandom());
return g.generateKeyPair();
}

最佳答案

owlstead 是正确的。为了更详细地说明一下,您可以这样做:

KeyPair pair = GenerateKeys();
Signature ecdsaSign = Signature.getInstance("SHA256withECDSA", "BC");
ecdsaSign.initSign(pair.getPrivate());
ecdsaSign.update(plaintext.getBytes("UTF-8"));
byte[] signature = ecdsaSign.sign();

并验证:

Signature ecdsaVerify = Signature.getInstance("SHA256withECDSA", "BC");
ecdsaVerify.initVerify(pair.getPublic());
ecdsaVerify.update(plaintext.getBytes("UTF-8"));
boolean result = ecdsaVerify.verify(signature);

关于java - BouncyCaSTLe 上的椭圆曲线与数字签名算法 (ECDSA) 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18264760/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com