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 ...
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:
$ 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.
(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
$ 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/
$ 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.
Lea otras preguntas en las etiquetas encryption openssl