Не получить одинаковые значения ключей через хранилище ключей - PullRequest
0 голосов
/ 08 февраля 2012

Я сохранил закрытый ключ в файле, используя хранилище ключей

 ks.setKeyEntry("kk1", pr, pass, cert1);
 //ks is obj of keystore,
 //kk1 is alias,
 //pr-->is private key,
 //pass->is the password to protect that key,
 //cert1-->is the certificate chain..

Я напечатал «pr» (закрытый ключ) при сохранении в файл.В другой программе я открыл файл и прочитал содержимое, используя метод isKeyentry, и напечатал закрытый ключ, используя getkey ....

Я не получаю оба значения (секретного ключа) одинаково ... (пароль подходит, потому чтоесли не так файл не откроется) .. что не так ????Должен ли он быть таким же ???

Ответы [ 2 ]

0 голосов
/ 09 февраля 2012

Как вы измеряете эквивалентность? Самый простой, безопасный метод, который я могу придумать, состоит в следующем:

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] digest = md.digest(pr.getEncoded());
System.out.println(Arrays.toString(digest));
0 голосов
/ 09 февраля 2012

Невозможно проверить 2 значения ключа с помощью любого параметра, такого как хэш-код, toStirng и т. Д. Я следовал этому методу: я пытался зашифровать некоторые данные, используя оба ключа, и проверил, получаю ли я одни и те же данные или нет.сравнивая использование Array.equals (), поскольку мы получаем байтовый массив после шифрования.

Я сделал это только для того, чтобы узнать, получаю ли я тот же ключ, который сохранил в файле с помощью хранилища ключей.

Спасибовы ....

...