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?
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:
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
Si vous l'avez gpg
installé, 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.com
déchiffrer le message.
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)
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
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
Déchiffrer à l'aide d'une clé privée
$ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
stockexchange.com
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.