¿Cómo puedo cifrar todos los archivos con la extensión .sql usando OpenSSL? [cerrado]

4

Tengo algunos archivos .SQL en una carpeta específica, así que me gustaría cifrarlos usando OpenSSL.

Aparentemente esto no funciona:

openssl aes-256-cbc -in *.sql -out *.sql.enc -pass ...
    
pregunta Mirsad 25.12.2016 - 15:13
fuente

1 respuesta

9

Usa "encontrar"

OpenSSL es muy delicado con sus parámetros de línea de comandos. No da buenos mensajes de error en absoluto. Y es fácil desordenar las cosas y no darse cuenta.

Prueba esto:

Generar algunos archivos de entrada

$ for i in $(seq 9); do echo "This-is-file-#$i." > $i.sql; done


$ tail *.sql
==> 1.sql <==
This-is-file-#1.

==> 2.sql <==
This-is-file-#2.

==> 3.sql <==
This-is-file-#3.

==> 4.sql <==
This-is-file-#4.

==> 5.sql <==
This-is-file-#5.

==> 6.sql <==
This-is-file-#6.

==> 7.sql <==
This-is-file-#7.

==> 8.sql <==
This-is-file-#8.

==> 9.sql <==
This-is-file-#9.

Almacenar contraseña en variable de entorno

(Tengo un mal presentimiento sobre esto. No tengo idea de qué tan malo es esto. Pero esto tendrá que ver con esta demostración. Limpio el historial de comandos de Bash Shell, pero sospecho que no es suficiente. para responder eso en otra pregunta.)

$ export mypasswordvariable='Pa$$w0rd'

$ history -c

$ echo -n $mypasswordvariable | xxd
00000000: 5061 2424 7730 7264                      Pa$$w0rd

Encriptar

$ find -maxdepth 1 -type f -iname '*.sql' -exec openssl aes-256-cbc -pass env:mypasswordvariable -base64 -salt -in \{\} -out \{\}.enc \;



$ tail *.enc
==> 1.sql.enc <==
U2FsdGVkX19njV2FbnxtQNEZfOZM49YmCSYCE4cOeKeLZDrfovbzad+dFoxds+uN

==> 2.sql.enc <==
U2FsdGVkX189IIeDm3mJEA8EG56I/mAzasXrtNhEDY8MT1/IOkHS/WKDHH7h69Fo

==> 3.sql.enc <==
U2FsdGVkX1/y3eRAFIIbsreix9nhpg611t3w0jn19Px8lBTjeE44rItSwwaaCudt

==> 4.sql.enc <==
U2FsdGVkX1/jHEXUfqzr0mdtChCIeQhFpRe+P0cOSeJf0Er96fDKD0nKV0nwPpL3

==> 5.sql.enc <==
U2FsdGVkX1/ask3K8Zt0bgvP/u5SL6hiFBz7u6Msc3LgRQXwa9Qgr4o04A8melkl

==> 6.sql.enc <==
U2FsdGVkX1+YRUF/nBKBdV4XIcyyyZBd7slaXMIQCSIvUnEeSkaR6GPYdE57Z1ng

==> 7.sql.enc <==
U2FsdGVkX1/zJSXlPNNJmMO4dfSqyGkweD+wAftmgOHgpT0NIEoexX0pRKQLPDkR

==> 8.sql.enc <==
U2FsdGVkX1/7i3jxHVTbqjA8JycR0+/46nWpJZHQ9HhGAFjRuszi/YLFe+2cWSMG

==> 9.sql.enc <==
U2FsdGVkX1/Zg7v5fgAJWUuBmb1mz/2cGwTwLSNbTHeSsCs3YtBe1fKpjY5CFIJ/

Descifrar

$ find -maxdepth 1 -type f -iname '*.sql.enc' -print -exec openssl aes-256-cbc -d -pass env:mypasswordvariable -base64 -salt -in \{\} \;
./1.sql.enc
This-is-file-#1.
./2.sql.enc
This-is-file-#2.
./3.sql.enc
This-is-file-#3.
./4.sql.enc
This-is-file-#4.
./5.sql.enc
This-is-file-#5.
./6.sql.enc
This-is-file-#6.
./7.sql.enc
This-is-file-#7.
./8.sql.enc
This-is-file-#8.
./9.sql.enc
This-is-file-#9.

Sí. El descifrado funciona.

    
respondido por el StackzOfZtuff 25.12.2016 - 15:56
fuente

Lea otras preguntas en las etiquetas