Java DSA签名:固定密钥大小和签名大小

时间:2016-05-15 06:28:50

标签: java digital-signature public-key dsa

我有以下代码签署一些String数据:

KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
keyGen.initialize(1024, random);
KeyPair pair = keyGen.generateKeyPair();
PrivateKey privateK = pair.getPrivate();
PublicKey publicK = pair.getPublic();

Signature dsa = Signature.getInstance("SHA1withDSA");
dsa.initSign(privateK);
dsa.update(data.getBytes());

byte[] signature = dsa.sign();
String hexSignature = DatatypeConverter.printHexBinary(signature);
String hexPublicK = DatatypeConverter.printHexBinary(publicK.getEncoded());

然而,它给了我一个不同的公钥大小和签名大小。 例如,

enter image description here

为什么?我希望公钥和为某些数据生成的签名都有固定的大小。

感谢您的帮助!

0 个答案:

没有答案