Kaikkien tiedostojen purkaminen kansiossa
Graafinen Crypt4gh-käyttöliittymä tarjoaa helpon tavan salata ja purkaa yksittäisiä tiedostoja. Kuitenkin, salatut tietoaineistot saattavat sisältää suuria määriä tiedostoja, ja näissä tapauksissa tiedostokohtainen salaus tai purku voi olla liian työlästä.
Tämä asiakirja tarjoaa yksinkertaisia skriptausesimerkkejä, jotka havainnollistavat, kuinka purkuprosessi voidaan automatisoida. Käytännössä automatisoitu purkuprosessi vaatii kahta toimintoa:
-
Silmukan rakentaminen, joka löytää salatut tiedostot ja suorittaa purkukomennon.
-
Menetelmän, joka tarjoaa automaattisesti purkulausekkeen purkukomennolle.
Alla olevissa esimerkeissä oletamme, että meillä on hakemisto nimeltä data1. Hakemisto sisältää satoja tiedostoja, joista salatut tiedostot ovat .c4gh-päätteisiä. Salaus on tehty niin, että purkaminen voidaan suorittaa salaisella avaimella my-key.sec, joka on suojattu salasanalla: badpasswd.
Purku bash-skriptillä Macissa ja Linuxissa
Linux- ja Mac-koneissa crypt4gh
-komentorivityökalu pystyy lukemaan yksityisavaimen salasanan ympäristömuuttujasta C4GH_PASSPHRASE. Siksi ensimmäinen askel on asettaa tämä muuttuja. Bash-kuoressa tämä voidaan tehdä seuraavilla komennoilla:
Find-komentoa voidaan käyttää listaamaan kaikki tiedostot, jotka päättyvät .c4gh annetussa hakemistossa (data1) ja sen alihakemistoissa. Tätä listaa voidaan käyttää syötteenä for-silmukalle.
Silmukan sisällä meidän täytyy määritellä nimi puretulle tiedostolle. Tässä tapauksessa käytämme komentoputkea rev | cut -c6- | rev leikkaamaan pois salatun tiedostonimen viimeiset viisi merkkiä (eli .c4gh), jotta määritämme puretun datan tiedostonimen.
Varsinainen purku suoritetaan komennolla:
Näillä askelilla koko skripti voisi näyttää seuraavalta:
#!/bin/bash
echo "Anna salasanan my-key.sec:lle"
read C4GH_PASSPHRASE
export C4GH_PASSPHRASE
for f_encrypted in $(find data1 -name *.c4gh)
do
echo "Purkaa $f_encrypted"
# määrittele tiedoston nimi puretulle datalle
f_decrypted=$(echo $f_encrypted | rev | cut -c6- | rev)
crypt4gh decrypt --sk my-key.sec < "$f_encrypted" > $f_decrypted
done
Skripti voitaisiin suorittaa komentoina:
Purku Windows PowerShellin avulla
Cryp4gh on saatavilla myös Windows-koneille, mutta Windows-versio ei pysty lukemaan salaisen avaimen salasanaa ympäristömuuttujasta. Tämän vuoksi meidän täytyy käyttää sda-cli.exe-komentoa sen sijaan. Tässä tapauksessa salasana voidaan tallentaa muuttujaan C4GH_PASSWORD.
Sda-cli.exe-komennon voi ladata osoitteesta: https://github.com/NBISweden/sda-cli/releases
Kun komento on saatavilla, purku voidaan suorittaa seuraavilla PowerShell-komennoilla. Tässä oletamme, että purettavat tiedot ovat hakemistossa E:\data1.
```powershell $env:C4GH_PASSWORD = "badpasswd" $files = (Get-ChildItem -Path 'E:\data1\'*.c4gh -Recurse).fullname
foreach ($f in $files) { .\sda-cli decrypt -key .\my-key.sec $f }