Я создал хранилище ключей, используя java keytool для хранения пароля, используя следующую команду
$ keytool -importpassword -alias myalias -keystore mykeystore.jceks -storetype jceks
Enter keystore password: keystore
Re-enter new password: keystore
Enter the password to be stored: testpassword
Re-enter password: testpassword
Enter key password for <myalias>
(RETURN if same as keystore password):
Я хочу получить этот пароль в программе java. Вот что я написал до сих пор.
InputStream is = new FileInputStream(new File("mykeystore.jceks"));
KeyStore ks = KeyStore.getInstance("jceks");
ks.load(is, "keystore".toCharArray());
PasswordProtection pp = new PasswordProtection("keystore".toCharArray());
SecretKeyEntry ske = (SecretKeyEntry) ks.getEntry("myalias", pp);
System.out.println(ske.toString()); // Outputs: "Secret key entry with algorithm PBEWithMD5AndDES"
Как мне вернуть пароль, который я храню? Возможно ли это?
Полный код ссылки ниже.
Обязательные библиотеки:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.security.Key;
import java.security.KeyStore;
import java.security.KeyStore.PasswordProtection;
import java.security.KeyStore.SecretKeyEntry;
import java.security.cert.CertificateException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.UnrecoverableEntryException;
Класс:
class JCEKS
{
public static void main(String args[])
{
try{
InputStream is = new FileInputStream(new File("mykeystore.jceks"));
KeyStore ks = KeyStore.getInstance("jceks");
ks.load(is, "keystore".toCharArray());
PasswordProtection pp = new PasswordProtection("keystore".toCharArray());
SecretKeyEntry ske = (SecretKeyEntry) ks.getEntry("myalias", pp);
System.out.println(ske.toString());
}
catch(KeyStoreException e){
System.out.println("KeyStoreException:");
System.out.println(e);
}
catch(FileNotFoundException e){
System.out.println("FileNotFoundException:");
System.out.println(e.getMessage());
}
catch(IOException e){
System.out.println("IOException:");
System.out.println(e.getMessage());
}
catch(NoSuchAlgorithmException e){
System.out.println("NoSuchAlgorithmException:");
System.out.println(e.getMessage());
}
catch(CertificateException e){
System.out.println("CertificateException:");
System.out.println(e.getMessage());
}
catch(UnrecoverableKeyException e){
System.out.println("UnrecoverableKeyException:");
System.out.println(e.getMessage());
}
catch(UnrecoverableEntryException e){
System.out.println("UnrecoverableEntryException:");
System.out.println(e.getMessage());
}
}
}