gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:29 25 4
gpt4 key购买 nike

我正在尝试实现 ECDSA(椭圆曲线数字签名算法),但我找不到任何使用 Bouncy CaSTLe 的 Java 示例。我创建了 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/18244630/

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