2

我正在使用 javaKeyStore来存储用户安全信息并使用密码锁定(加密)密钥库,并在需要时使用密码检索信息,这工作正常。

但我不知道如何更改同一个 keyStore 文件的密码

我正在使用使用KeyStore.load(InputStream,Password)用户密码访问密钥库并将keyStore.store(Keystore,password)值写入密钥库的方法。

有什么办法可以更改keyStore文件的密码。我已经检查了这里给出的 api 文档:http: //docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html

4

1 回答 1

5

感谢@Danail Alexiev 的工作,KeyStore使用旧密码加载并用新密码覆盖相同的 keyStoreStream 将更改 keyStore 密码(使用新密码加密密钥库内容)

这是参考的代码:

InputStream keyStoreStream = ontext.openFileInput ( filename );
KeyStore keyStore = KeyStore.getInstance ( KeyStore.getDefaultType ( ) );
keyStore.load ( keyStoreStream, oldPass );
FileOutputStream fileOutputStream = context.openFileOutput ( filename, Context.MODE_PRIVATE );
keystore.store ( fileOutputStream, newPassword );
fileOutputStream.close ( );
于 2016-02-22T19:11:12.220 回答