
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?, en este artículo les voy a mostrar como cifrar información en pocos pasos utilizando OpenSSL.
¿Cómo funciona?
Para poder cifrar información requerimos de un par de llaves, una Llave Privada y una Llave Pública, utilizamos la llave pública para cifrar información que solo la llave privada puede descifrar, cómo se aprecia 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 de OpenSSL:
openssl genpkey -algorithm RSA -out mi_llave_privada.pem -pkeyopt rsa_keygen_bits:2048
2. Extraer la llave pública
Para extraer la llave pública del archivo PEM que se generó con el comando anterior ejecutamos:
openssl rsa -pubout -in mi_llave_privada.pem -out mi_llave_publica.pem
3. Cifrar información
Para cifrar la información ejecutamos:
echo "texto que quiero cifrar" |openssl rsautl -encrypt -pubin -inkey mi_llave_publica.pem -ssl |base64
grep -rin xyz *
Consejo
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, guardo la información cifrada en un archivo y ejecuto el siguiente comando:
base64 -d archivo_que_quiero_desencriptar |openssl rsautl -decrypt -inkey mi_llave_privada.pem
Listo ahora ya sabemos como cifrar y descifrar información, así que si dos personas comparten sus llaves públicas pueden compartir información cifrada.
