¿Cómo puedo encriptar una cadena en el shell?

20

¿Puedo encriptar un mensaje (cadena) usando una clave pública en el símbolo del sistema? Además, ¿cómo puedo descifrar el resultado después?

Der Hochstapler
fuente

Respuestas:

28

Otra opción es 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
fuente
+1 para openssl ya que se instala más comúnmente que gpg es
Doug Harris
Esto es perfecto: funciona en Mac, Alpine, cualquier cosa ... ¡buen trabajo!
Jeremy Iglehart
sí, ¿qué tal un ejemplo que no usa un archivo sino un argumento?
Alexander Mills
11

Si lo ha gpginstalado, este es un método de cifrado de potencia industrial.

gpg --encrypt -r [email protected]> archivo temporal

Escriba datos en la consola y presione Ctrl+Dpara finalizar el texto. Esto le dará datos encriptados tempfile. Para descifrar:

gpg --decrypt <archivo temporal

Necesitará la frase de contraseña para [email protected]descifrar el mensaje.

Greg Hewgill
fuente
ok, entonces si la frase de contraseña necesita ser ingresada de manera interactiva, ¿cómo hacerlo de manera no interactiva? ¿Cómo hacer esto de forma no interactiva?
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 (Estoy en una Mac)
Alexander Mills
5
  1. Generar un par de claves privadas / públicas

    $ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
    
  2. Cifre la cadena con clave pública y almacénela en un archivo

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

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

cripta de hombre (1)

Nota:

crypt implementa una máquina de un rotor diseñada siguiendo las líneas del Enigma alemán, pero con un rotor de 256 elementos. Los métodos de ataque en tales máquinas son ampliamente conocidos, por lo que la cripta proporciona una seguridad mínima.

Pero está bien para fines de demostración.

Nifle
fuente
"Biblioteca de información de Oracle Solaris 10 8/11"
Sebas