所以我尝试用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加密通常和默认的Bouncy使用ASN.1 DER(可变长度)对ECDSA(也称为DSA)签名进行编码。请参阅近dupe ECDSA 签名长度和交叉 https://crypto.stackexchange.com/questions/33095/shouldnt-a-signature-using-ecdsa-be-exactly-96-bytes-not-102-or-103。
然而,对您来说幸运的是,Bouncy(1.51以上)还实现了P1363风格的固定长度编码,名称为{hash}with PLAIN-ECDSA
或{hash}with CVC-ECDSA
(并且还将的斜线替换为
)。CVC在这种情况下显然是指卡可验证证书,尽管我不认为签名编码是有限设备的证书验证中最困难的部分。
更新:Bouncy 1.61(2019-02)修复了评论中提到的“纯”编码中的错误。此外,在Java 9(2018-12)中,标准版(Oracle)SunEC提供程序支持此格式为带有ECDSAINP1363格式的<code>{hash}</code>
问题内容: 因此,我试图用Java生成ECDSAwithHA256签名,为此,我使用的是BouncyCastle提供程序。曲线是secp521r1。 要初始化我正在使用的签名者: 并签署我正在使用 现在唯一的问题是,当我运行代码时,我得到的签名长度在137到139字节之间。但我希望得到的字节数始终相同。有人知道我必须更改什么,即我的签名长度始终相同,但仍然是标准的签名格式吗? 问题答案: 通常,J
我试图用MergeContent处理器在磁盘上写一个文件,但是我得到的文件大小变化很大-从一行到806行不等。我多次重复这个过程,试图找出Apache NIFi MergeContent处理器中所述的换行demarcator--将demarcator设置为新行,我得到了真正随机大小的文件。 我需要设置哪些参数才能遵守以下逻辑? 建立单个bin 将所有流文件路由到bin 如果len(bin)>x或b
问题内容: ECDSA算法中256位EC密钥的签名长度将是多少?我想验证签名长度是否相同。如果某个机构可以帮助我设置一个EC钥匙,那将是很棒的。 问题答案: 这取决于您如何对签名进行编码。这是OpenSSL的代码段,用于测量DER格式的ECDSA签名的长度。 以prime256曲线上的EC_KEY作为参数的上述函数的结果是 sig_len在哪里。 您需要使用位EC密钥的字节来进行DER编码的ECD
我一直在努力解决RSA_verify的一个奇怪问题。我正在尝试使用C进行RSA签名,并使用C进行RSA验证。我已经使用OpenSSL命令生成了私钥和证书。 当我使用上面的消息,生成一个散列并使用RSA\u-sign对摘要进行签名时,我得到长度为256的签名(),并且RSA\u-sign返回的长度为256。我使用此长度进行验证,验证成功。 但是当我使用时,签名长度为60,RSA\u-sign返回25
本文向大家介绍解决PHP字符串长度不一致的问题,包括了解决PHP字符串长度不一致的问题的使用技巧和注意事项,需要的朋友参考一下 如下所示: 这两句就可以解决了。 以上这篇解决PHP字符串长度不一致的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
我不确定使用哪个函数来执行以下操作: 和都对这个长度不满意: