Comment puis-je crypter une chaîne dans le shell?


20

Puis-je chiffrer un message (chaîne) à l'aide d'une clé publique à l'invite de commande? De plus, comment puis-je décrypter le résultat par la suite?

Réponses:


28

Une autre option est openssl:

# generate a 2048-bit RSA key and store it in key.txt
openssl genrsa -out key.txt 2048

# encrypt "hello world" using the RSA key in key.txt
echo "hello world" | openssl rsautl -inkey key.txt -encrypt >output.bin

# decrypt the message and output to stdout
openssl rsautl -inkey key.txt -decrypt <output.bin

+1 pour openssl car il est plus couramment installé que gpg
Doug Harris

C'est parfait - fonctionne sur Mac, Alpine, n'importe quoi ... bon travail!
Jeremy Iglehart

oui que diriez-vous d'un exemple n'utilisant pas un fichier mais un argument?
Alexander Mills

11

Si vous l'avez gpginstallé, il s'agit d'une méthode de cryptage de niveau industriel.

gpg --encrypt -r recipient@example.com> tempfile

Tapez les données sur la console et appuyez sur Ctrl+Dpour terminer le texte. Cela vous donnera des données cryptées tempfile. Pour décrypter:

gpg --decrypt <fichier temporaire

Vous aurez besoin de la phrase secrète pour recipient@example.comdéchiffrer le message.


ok, donc si la phrase secrète doit être saisie de manière interactive, comment le faire de manière non interactive? Comment cela sans interaction?
Alexander Mills

gpg --encrypt -r recipient@example.com >tempfile gpg: error retrieving 'recipient@example.com' via WKD: No data gpg: recipient@example.com: skipped: No data gpg: [stdin]: encryption failed: No data (Je suis sur un mac)
Alexander Mills

5
  1. Générer une paire de clés privée / publique

    $ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
    
  2. Chiffrer la chaîne à l'aide d'une clé publique et stocker dans un fichier

    $ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
    
  3. Déchiffrer à l'aide d'une clé privée

    $ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
    stockexchange.com
    

4

crypte de l'homme (1)

Remarque:

crypt implémente une machine à un rotor conçue dans le style de l'énigme allemande, mais avec un rotor à 256 éléments. Les méthodes d'attaque sur de telles machines sont largement connues, donc crypt fournit une sécurité minimale.

Mais c'est OK à des fins de démonstration.


"Bibliothèque d'informations Oracle Solaris 10 8/11"
Sebas
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.