Como posso criptografar uma string no shell?

20

Posso criptografar uma mensagem (string) usando uma chave pública no prompt de comando? Além disso, como descriptografar o resultado posteriormente?

Der Hochstapler
fonte

Respostas:

28

Outra opção é 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
fonte
+1 para openssl uma vez que é mais comumente instalado que gpg é
Doug Harris
Isso é perfeito - funciona em Mac, Alpine, qualquer coisa ... bom trabalho!
Jeremy Iglehart 19/10/10
Sim, que tal um exemplo, não usando um arquivo, mas um argumento?
Alexander Mills
11

Se você gpginstalou, este é um método de criptografia de nível industrial.

gpg --encrypt -r destinatá[email protected]> tempfile

Digite dados no console e pressione Ctrl+Dpara finalizar o texto. Isso fornecerá dados criptografados tempfile. Para descriptografar:

gpg --decrypt <tempfile

Você precisará da senha para [email protected]descriptografar a mensagem.

Greg Hewgill
fonte
ok, então, se a senha precisa ser inserida interativamente, como fazê-lo de maneira não interativa? Como isso não interativamente?
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 (Estou em um mac) #
Alexander Mills
5
  1. Gere um par de chaves públicas / privadas

    $ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
    
  2. Criptografe a string usando a chave pública e armazene em um arquivo

    $ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
    
  3. Descriptografar usando chave privada

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

cripta de homem (1)

Nota:

O crypt implementa uma máquina de um rotor projetada ao longo das linhas do Enigma alemão, mas com um rotor de 256 elementos. Os métodos de ataque a essas máquinas são amplamente conhecidos, portanto, a criptografia fornece segurança mínima.

Mas tudo bem para fins de demonstração.

Nifle
fonte
"Biblioteca de informações do Oracle Solaris 10 8/11"
Sebas 26/01