"12iamfine"
не является допустимым параметром для Signature.getInstance()
. Вам нужно передать имя алгоритма, а не данные, которые вы хотите подписать (я предполагаю, что это то, что c
...).
Я кратко код из следующего блога для создания подписи: https://compscipleslab.wordpress.com/2012/11/18/generating-verifying-digital-signatures/
//Create a KeyPairGenerator object for generating keys for the DSA signature algorithm.
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DSA", "SUN");
//Instantiate SecureRandom Object, which will act as a source of random numbers.
//Here, we use SHA1PRNG
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
//Initialize the KeyPairGenerator with the key-length and the source of randomness
keyGen.initialize(1024, random);
//Generate the key-pair
KeyPair pair = keyGen.generateKeyPair();
//Collect the public & private key from the KeyPair into separate objects
PrivateKey privkey = pair.getPrivate();
PublicKey pubkey = pair.getPublic();
//Create a Signature object, you have to supply two arguments,first the algorithm
//name & the provider. Here we use SHA1withDSA supplied by the SUN provider
Signature dsa = Signature.getInstance("SHA1withDSA", "SUN");
//Initialize it with the private key before using it for signing.
dsa.initSign(privkey);
//Supply the Signature Object the data to Be Signed
BufferedInputStream bufin = new BufferedInputStream(new FileInputStream(inputfile));
byte[] buffer = new byte[1024];
int len;
while ((len = bufin.read(buffer)) >=0) {
dsa.update(buffer, 0, len);
}
bufin.close();
//Sign the data i.e. generate a signature for it
byte[] realSig = dsa.sign();
Вам нужен секретный ключ, чтобы что-то подписать. В чем проблема с вашим кодом? Любые ошибки? Ведет ли он себя иначе, чем вы этого хотите? –
pvkey - это мой личный ключ, и я хочу получить значение моего хранилища подписи в переменной через клиентскую розетку. – Khan
Я думаю, что мой ответ может указать вам в правильном направлении, но вы должны предоставить значительно больше деталей в своем исходном вопросе. Какой результат вы ожидали? Какой результат вы получили? Вы получили сообщение об ошибке? Если да, то что это было? Как вы получаете значение pvKey? Не используйте имена переменных, такие как 'a',' b' или 'c', вместо этого дайте им описательные имена. – Gray