2017-03-24 1 views
0

Je suis en train de lire divers articles en ligne sur la meilleure façon de stocker les mots de passe pour ce genre de but. Jusqu'à présent, le plus proche est d'ajouter le mot de passe à un fichier keystore créé via l'invite de commande. Avec cette approche tout ce que je peux faire est accéder à l'objet SecretKeyComment se connecter à MySQL de Java sans enregistrer le mot de passe en texte clair

SecretKeyEntry entry = (KeyStore.SecretKeyEntry)ks.getEntry("vault",new KeyStore.PasswordProtection(password)); 
      SecretKey someKey = entry.getSecretKey(); 
      System.out.println(someKey.getEncoded()); 

Cela fonctionne, mais pour accéder au SecretKeyEntry je dois passer le mot de passe du fichier de clés en tant que chaîne et appeler le texte brut méthode toCharArray. Aussi à partir de là, comment puis-je réellement utiliser la valeur pour se connecter à MySQL.

+0

Copie possible de [Crypter le mot de passe dans les fichiers de configuration?] (Http://stackoverflow.com/q/1132567/5221149) – Andreas

+2

Il doit y avoir un mot de passe cleartext _somewhere_ si votre programme Java doit démarrer sans intervention manuelle. Si vous ne pouvez pas faire cela, vous devrez demander à quelqu'un de saisir manuellement le mot de passe au démarrage, ce qui ne fait que déplacer le problème ailleurs (qui a accès à la liste des mots de passe). Si vous cryptez le mot de passe dans la configuration, vous devrez stocker la clé de cryptage quelque part, et elle devra être protégée par un mot de passe, c'est donc «torturer tout le long». –

+0

Merci @JimGarrison Avec l'enregistrement du mot de passe dans la configuration ou un fichier de propriétés ou l'une de ces méthodes. Existe-t-il une méthode pour utiliser la valeur cryptée pour se connecter à mysql workbench? – deco

Répondre

0

Si vous déployez votre application sur un serveur d'applications (Weblogic/tomcat) vous pouvez créer une source de données sur le serveur avec les informations d'identification nécessaires à la base de données. Depuis votre application, vous pouvez vous connecter via la source de données en mentionnant simplement son nom.