Fichier de stockage des clés de la clé sans mot de passe
J'ai besoin de savoir si c'est possible de récupérer une clé à partir d'un fichier de clés sans fournir de la "storepass'. La documentation ici dit que "Lors de la récupération d'informations à partir du fichier de stockage des clés, le mot de passe est facultatif; si aucun mot de passe n'est donnée, l'intégrité de l'information récupérée ne peut pas être vérifiée et un avertissement est affiché"
Cependant, lorsque j'essaie d'obtenir la Clé sans mot de passe, je reçois "de java.lang.IllegalArgumentException: mot de passe ne peut pas être null" exception.
Suivants est la façon dont j'ai créé le fichier de clés
keytool -genseckey -alias "maclé" -keystore de magasin de clés.jks -storepass "mot de passe" -storetype "JCEKS" -keyalg AES -keysize 128
Et j'ai essayé de le récupérer comme suit
final KeyStore keyStore = KeyStore.getInstance("JCEKS");
keyStore.load(new FileInputStream(new File("C:\\temp\\keytool\\KEYSTORE.jks")),
null);
final Key key = keyStore.getKey("myKey", null);
Qui lève l'exception suivante
java.lang.IllegalArgumentException: password can't be null
at com.sun.crypto.provider.SunJCE_z.<init>(DashoA13*..)
at com.sun.crypto.provider.JceKeyStore.engineGetKey(DashoA13*..)
at java.security.KeyStore.getKey(KeyStore.java:763)
Ai-je mal compris la documentation complètement? Est-il un autre moyen de contourner cela, car je ne vois pas l'intérêt dans la conservation de la "storepass" en clair dans mon code où tout le monde peut le voir, donc de rendre le mot de passe inutiles.
OriginalL'auteur Nishant | 2012-03-18
Vous devez vous connecter pour publier un commentaire.
Si
storepass
(qui est utilisé pour accéder à la clé privée) n'est pas fourni, alors il va essayer d'utiliser lekeypass
c'est à dire le mot de passe du fichier de clés, vous aussi, ne pas fournir.C'est pourquoi vous obtenez une exception.
Vous ne pouvez pas avoir les deux la
keypass
etstorepass
nullÀ partir de votre lien:
Si votre problème est d'éviter que le mot de passe codé en dur dans le code?C'est le problème le plus commun.Vous ne pouvez vraiment pas faire beaucoup parler.Recommandée approche générale est de demander le mot de passe de l'utilisateur.Si vous ne pouvez faire que vous pouvez faire quelque chose d'élaboré, par exemple, de crypter le mot de passe, mais qui ne sera pas vraiment de vous.Vous pouvez également déléguer la responsabilité de l'utilisateur c'est à dire de conserver le système de fichiers sécurisé.
OriginalL'auteur Cratylus