微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在BouncyCastle上实现带有数字签名算法的椭圆曲线ECDSA实现

如何解决在BouncyCastle上实现带有数字签名算法的椭圆曲线ECDSA实现

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);

解决方法

我正在尝试实现ECDSA(椭圆曲线数字签名算法),但是在Java中找不到使用Bouncy
Castle的示例。我创建了密钥,但是我真的不知道我应该使用哪种功能来创建签名并进行验证。

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();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。