может кто-нибудь объяснить мне, как подписать строку или массив байтов, используя закрытый ключ? ПОЖАЛУЙСТА. две недели я пытаюсь добиться этого. У меня есть код:знак строки с закрытым ключом
private static byte[] createSignature(byte[] file) {
byte[] signature = null;
try {
java.security.KeyStore keyStoreFile = java.security.KeyStore
.getInstance("PKCS12");
keyStoreFile.load(new FileInputStream("keyStore.pfx"),
"password".toCharArray());
// nuskaitomas privatus raktas iš failo
PrivateKey privateKey = (PrivateKey) keyStoreFile.getKey(
"alais", "password".toCharArray());
Signature dsa = Signature.getInstance(SHA1withRSA);
dsa.initSign(privateKey);
dsa.update(file, 0, file.length);
signature = dsa.sign();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return signature;
}
, но это просто подпись. .
Этот код даст вам подпись. Вы должны проверить это с помощью открытого ключа. Что еще тебе нужно? – Thilo
Что вы подразумеваете под «но это всего лишь подпись»? ваш код, кажется, делает то, о чем вы просили. пожалуйста, уточните, если вы имеете в виду что-то еще – Neal
спасибо всем. Я должен опубликовать две переменные: 1.signed data (string) с использованием закрытого ключа и 2.signature. Тогда я не понимаю разницы. Что это? – innspiron