Java DSA Signature: фиксированный размер ключа и размер подписи
У меня есть следующий код, который подписывает некоторые данные 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());
Тем не менее, это дает мне различные размеры открытого ключа и размера подписи. Например,
Это почему? Я хочу, чтобы открытый ключ и подпись для некоторых данных имели фиксированный размер.
Спасибо за помощь!