¿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?
¿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:
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
Si lo ha gpg
instalado, 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.com
descifrar el mensaje.
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)
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
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
Desencriptar usando clave privada
$ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
stockexchange.com
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.