Ho alcuni file .SQL in una cartella specifica, quindi mi piacerebbe crittografarli usando OpenSSL.
Questo a quanto pare non funziona:
openssl aes-256-cbc -in *.sql -out *.sql.enc -pass ...
OpenSSL è molto schizzinoso con i suoi parametri da riga di comando. Non dà affatto buoni messaggi di errore. Ed è facile fare casino e non notarlo.
Prova questo:
$ 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.
(Ho una brutta sensazione a questo proposito, non ho idea di quanto sia pessimo, ma per questa demo dovrei farlo. Pulisco la cronologia dei comandi di Bash shell ma ho il sospetto che non sia abbastanza. per rispondere a questa in un'altra domanda.)
$ 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.
Yup. La decrittografia funziona.
Leggi altre domande sui tag encryption openssl