java密钥库和密码更改

时间:2012-03-12 10:56:34

标签: java keytool

我更改了密钥库的传递:

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 个答案:

答案 0 :(得分:2)

可能是您更改了密钥存储区的密码而不是密钥条目的密码? 两者都可以单独更改。

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));

答案 1 :(得分:2)

好的,我发现了自己的错误。我必须首先为所有条目运行keypasswd:

keytool -keypasswd -storetype JCEKS -keystore myKeys.jceks

然后是storepasswd:

keytool -storepasswd -storetype JCEKS -keystore myKeys.jceks

用于整个密钥库。