хранилище ключей java и смена пароля - PullRequest
0 голосов
/ 12 марта 2012

Я изменил пароль своего хранилища ключей:

keytool -list -storetype JCEKS -keystore store.jceks -storepasswd -new secret

здесь у меня есть 3 записи

        passwd = new char[] { 's', 'e', 'c', 'r', 'e', 't' };
        fis = new FileInputStream("myKeys.jceks");
        ks.load(fis, passwd);
KeyStore.SecretKeyEntry skEntry = (KeyStore.SecretKeyEntry) ks.getEntry(alias, new KeyStore.PasswordProtection(
        passwd));

здесь я получил исключение:

java.security.UnrecoverableKeyException: Given final block not properly padded

Вы можете помочьмне что не так?

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

Хорошо, я нашел свою ошибку.Сначала я должен запустить keypasswd для всех записей:

keytool -keypasswd -storetype JCEKS -keystore myKeys.jceks

, а затем storepasswd:

keytool -storepasswd -storetype JCEKS -keystore myKeys.jceks

для всего хранилища ключей.

2 голосов
/ 12 марта 2012

Может быть, вы изменили пароль хранилища ключей, но не ввода ключа?Оба могут быть изменены индивидуально.

passwdStore = new char[] { 's', 'e', 'c', 'r', 'e', 't' };
passwdEntry = new char[] { 'p', 'a', 's', 's', 'w', '2' };
fis = new FileInputStream("myKeys.jceks");
ks.load(fis, passwdStore);
KeyStore.SecretKeyEntry skEntry = (KeyStore.SecretKeyEntry) ks.getEntry(alias, new KeyStore.PasswordProtection(passwdEntry));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...