¿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?

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

+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 recipiente@ejemplo.com> 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 recipient@example.comdescifrar el mensaje.


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 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 (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
    

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.


"Biblioteca de información de Oracle Solaris 10 8/11"
Sebas
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.