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?

Der Hochstapler
la source

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
laalto
la source
+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 [email protected]> 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 [email protected]déchiffrer le message.

Greg Hewgill
la source
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 [email protected] >tempfile gpg: error retrieving '[email protected]' via WKD: No data gpg: [email protected]: 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
    
Kexin Z
la source
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.

Nifle
la source
"Bibliothèque d'informations Oracle Solaris 10 8/11"
Sebas