Come posso criptare tutti i file con estensione .sql usando OpenSSL? [chiuso]

4

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 ...
    
posta Mirsad 25.12.2016 - 15:13
fonte

1 risposta

9

Utilizza "trova"

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:

Genera alcuni file di input

$ 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.

Memorizza password nella variabile d'ambiente

(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

Encrypt

$ 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/

Decrypt

$ 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.

    
risposta data 25.12.2016 - 15:56
fonte

Leggi altre domande sui tag