【发布时间】:2019-02-06 21:56:43
【问题描述】:
所以我正在尝试在 Java 中生成 ECDSAwithHA256 签名,为此,我正在使用 BouncyCastle 提供程序。曲线是 secp521r1。
初始化我正在使用的签名者:
public static final String SIGNATURE_ALGORITHEM = "SHA256withECDSA";
public void init() {
signer = Signature.getInstance(SIGNATURE_ALGORITHEM, BouncyCastleProvider.PROVIDER_NAME);
signer.initSign(privKey);
}
我正在使用签名
public byte[] sign(byte[] bytes) throws SignatureException {
signer.update(bytes);
byte[] signature = signer.sign();
System.out.println("Signature lenght is " + signature.length);
return signature;
}
现在唯一的问题是,当我运行代码时,我得到长度在 137 到 139 字节之间的签名。但我希望总是得到相同数量的字节。有人知道我必须改变什么吗,我始终具有相同的签名长度,但仍然是标准化的签名格式?
【问题讨论】:
-
正常,预计签名长度会有所不同。
标签: java cryptography digital-signature bouncycastle ecdsa