Comment lire un mot de passe crypté clé avec java?

J'ai la clé privée stockée dans un fichier dans PKCS8 format DER et protégé par mot de passe. Quel est le moyen le plus facile à lire?

Voici le code que j'utilise pour charger non chiffrés:

InputStream in = new FileInputStream(privateKeyFilename);
byte[] privateKeydata = new byte[in.available()];
in.read(privateKeydata);
in.close();
KeyFactory privateKeyFactory = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec encodedKeySpec = new PKCS8EncodedKeySpec(privateKeydata);
PrivateKey privateKey = privateKeyFactory.generatePrivate(encodedKeySpec);

Il fonctionne très bien pour les non chiffrés clés avec le même cahier des charges. Par ailleurs, je suis en utilisant BouncyCastle.

Je peux afficher cette clé privée à l'aide de la suite de commande openssl

openssl pkcs8 -in ./privatekey.key -inform DER -passin pass:thisismypass

S'Il Vous Plaît, À L'Aide!!!

Je,ve posté quelques solutions dans ma propre réponse à ce sujet. Mais j'ai garder la question sans réponse dans le cas où n'importe qui peut les aider à le faire fonctionner sans supplément de bibliothèque, il suffit de BouncyCastle.

OriginalL'auteur Denis | 2010-04-16