¿Cómo cifrar información fácilmente?

June 02, 2016Sergio Basurto J.

Mucha de la información que guardamos en nuestros dispositivos electrónicos hoy en día es sensible, a veces compartimos información a través de medios electrónicos o simplemente queremos guardar información privada, pero ¿cómo hacemos para que esa información permanezca segura?, hoy les voy a mostrar como cifrar información en pocos pasos utilizando OpenSSL.

Explico brevemente como funciona:

Consiste en un par de llaves una pública y otra privada, utilizamos la llave pública para cifrar información que solo la llave privada puede descifrar como se muestra en el siguiente diagrama:

Procedimiento para Cifrar y Descifrar

1. Generar las llaves, una pública y otra privada

Para generar un par de llaves ejecutamos el siguiente comando en GNU/Linux:

openssl genpkey -algorithm RSA -out mi_llave_privada.pem -pkeyopt rsa_keygen_bits:2048
2. Extraer la llave pública

Para obtener la llave pública de la llave privada generada corremos el comando

openssl rsa -pubout -in mi_llave_privada.pem -out mi_llave_publica.pem
3. Cifrar información

Corremos el siguiente comando:

echo "texto que quiero encriptar" |openssl rsautl -encrypt -pubin -inkey mi_llave_publica.pem -ssl |base64

Tip
En este caso le estoy pasando texto sin embargo con la opción -in de OpenSSL puedo pasar un archivo completo.

4. Descifrar información

Para descifrar la información la guardo en un archivo y corro el siguiente comando:

base64 -d archivo_que_quiero_desencriptar |openssl rsautl -decrypt -inkey mi_llave_privada.pem

Listo ya sabemos cifrar y descifra la información, así que si dos personas realizan este procedimiento y comparten la llave pública pueden intercambiar información cifrada.