120 votes

Comment utiliser l'argument du mot de passe en ligne de commande à openssl pour le décryptage.

Ce n'est donc pas la pratique la plus sûre de transmettre un mot de passe par le biais d'un argument de ligne de commande. Cela dit, la documentation d'openssl m'a embrouillé sur la façon de passer un argument de mot de passe à la commande openssl.

Voici ce que j'essaie de faire

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d

Il vous est alors demandé de saisir la clé de décryptage. J'ai cherché dans les documents openssl et sur Internet pour essayer de trouver la réponse si je voulais simplement donner le mot de passe à la commande sans essayer d'envoyer le mot de passe dans le fichier. J'ai essayé d'ajouter -pass:somepassword y -pass somepassword avec et sans devis, en vain.

J'ai finalement trouvé la réponse et j'ai vu que dans d'autres forums, des personnes avaient des questions similaires. J'ai donc pensé poster ma question et ma réponse ici pour la communauté.

note : j'utilise openssl version 0.9.8y

200voto

Jimbali Points 101

La documentation n'était pas très claire pour moi, mais elle contenait la réponse, le problème étant de ne pas pouvoir voir d'exemple.

Voici comment procéder :

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -pass pass:somepassword

Notez que la syntaxe de la ligne de commande est toujours -pass suivi d'un espace et ensuite du type de phrase de passe que vous fournissez, c'est à dire pass: pour la phrase de passe simple et ensuite la phrase de passe réelle après les deux points, sans espace.

De plus, la documentation précise que vous pouvez fournir d'autres sources de phrases de passe en procédant comme suit :

  • env:somevar pour obtenir le mot de passe à partir d'une variable d'environnement
  • file:somepathname pour obtenir le mot de passe de la première ligne du fichier à l'emplacement pathname
  • fd:number pour obtenir le mot de passe à partir du numéro du descripteur de fichier.
  • stdin pour lire depuis l'entrée standard

Maintenant que j'ai écrit cette question et cette réponse, tout semble évident. Mais cela m'a certainement pris du temps à comprendre et j'ai vu d'autres personnes prendre autant de temps, alors j'espère que cela pourra réduire ce temps et répondre plus rapidement pour les autres ! :)

Avec OpenSSL 1.0.1e, le paramètre à utiliser est le suivant -passin o -passout . Cet exemple serait donc :

openssl aes-256-cbc -in some_file.enc -out some_file.unenc -d -passin pass:somepassword

31voto

Mikhailo Karpenko Points 331

J'ai utilisé -passin y -passout pour définir les mots de passe des deux fichiers dans l'exemple :

openssl pkcs12 -in voip.p12 -out voip.pem -passin pass:123 -passout pass:321

donde 123 y 321 sont des mots de passe

8voto

Javier Points 71

Pour le moment, Ubuntu 14.04 LTS est livré avec openssl 1.0.1f-1ubuntu2.16.

Dans cette version, le paramètre à utiliser est -k

Exemple :

openssl enc -aes-256-cbc -e -in some_file.unenc -out some_file.enc -k somepassword

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X