Cifrado/Decifrado

Codificar con base64-encode

Para codificar tenemos la opción enc -base64.

#La salida codificada de fichero.txt se muestra en la salida estándar.

 
openssl enc -base64 -in file.txt 
              

# Para enviar el resultado a un fichero.

 
openssl enc -base64 -in file.txt -out file.txt.enc 
              

También es posible realizar la codificación de una cadena desde la línea de órdenes:

 
$ echo -n "miclave" | openssl enc -base64
bWljbGF2ZQ== 
              

Hay que tener en cuenta que echo envía un fin de línea tras la cadena. Para evitarlo, especialmente cuando generamos contraseñas, debemos usar la opción -n. Si no se pone el valor es distinto:

 
echo "miclave" | openssl enc -base64
bWljbGF2ZQo= 
              

Podemos descifrar con la opción -d

 
echo bWljbGF2ZQo=| openssl enc -base64 -d-d
miclave 
              

Cifrar un fichero

Para el cifrado simple, probablemente es mejor usar herramientas como GPG, sin embargo puede haber situaciones que en las cuales es preferible utilizar openssl.

Para ecoger el mecanismo de cifrado podemos ejecutar

# ver el encabezado 'Cipher commands'

 
openssl -h 
              

# u obtener una lista

 
openssl list-cipher-commands 
              

Una vez que hemos elegido el mecanismo de cifrado, tendrá que decidir si tambien quiere la codficación base64-encode. Haciéndolo transformamos el fichero resultado en formato texto lo que puede facilitar su distribución por ejemplo por correo electrónico. Si omitimos la codificación base64-encode el fichero será binario.

# ciframos file.txt en file.enc usando 256-bit AES en modo CBC

 
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc 
              

# igual con salida base64-encoded

 
openssl enc -aes-256-cbc -a -salt -in file.txt -out file.enc 
              

Para descifrar file.enc tendrá que indicar el cifrado y la contraseña

# descrifar el binario file.enc

 
openssl enc -d -aes-256-cbc -in file.enc 
              

# descifrar la versión base64-encoded

 
openssl enc -d -aes-256-cbc -a -in file.enc