-
Kaikkien hakemiston tiedostojen salauksen purkaminen
Kaikkien hakemiston tiedostojen salauksen purkaminen
Graafinen Crypt4gh-käyttöliittymä tarjoaa helpon tavan yksittäisten tiedostojen salaamiseen ja salauksen purkamiseen. Salatut aineistot voivat kuitenkin sisältää suuren määrän tiedostoja, jolloin tiedostokohtainen salaus tai salauksen purkaminen voi olla liian työlästä.
Nämä ohjeet tarjoavat yksinkertaisia skriptausesimerkkejä havainnollistamaan, miten salauksen purkuprosessi voidaan automatisoida. Käytännössä automatisoitu salauksen purkuprosessi vaatii kaksi toiminnallisuutta:
-
Silmukan muodostamisen, joka etsii salatut tiedostot ja suorittaa salauksen purkukomennon.
-
Menetelmän, joka antaa salauksen purkusanan automaattisesti salauksen purkukomennoille.
Alla olevissa esimerkeissä oletamme, että meillä on hakemisto nimeltä data1. Hakemisto sisältää satoja tiedostoja, joista salatuilla tiedostoilla on .c4gh-pääte. Salaus on tehty siten, että salauksen purku voidaan tehdä salaisella avaimella my-key.sec, joka on suojattu salasanalla: badpasswd.
Salauksen purkaminen bash-skriptillä Macissa ja Linuxissa
Linux- ja Mac-koneissa crypt4gh-komentorivityökalu pystyy
lukemaan yksityisen avaimen salasanan ympäristömuuttujasta
C4GH_PASSPHRASE. Siksi ensimmäinen vaihe on asettaa tämä muuttuja. Bash-komentotulkissa
tämä voidaan tässä tapauksessa tehdä 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ää for-silmukan syötteenä.
Silmukan sisällä meidän täytyy määrittää nimi puretulle tiedostolle. Tässä tapauksessa käytämme komentoputkea rev | cut -c6- | rev poistamaan salatun tiedostonimen viisi viimeistä merkkiä (eli .c4gh) ja määrittämään tiedostonimen puretulle datalle.
Varsinainen salauksen purku tehdään komennolla:
Näillä vaiheilla koko skripti voisi näyttää seuraavalta:
#!/bin/bash
echo "Give the password of my-key.sec"
read C4GH_PASSPHRASE
export C4GH_PASSPHRASE
for f_encrypted in $(find data1 -name *.c4gh)
do
echo "Decrypting $f_encrypted"
#define the file name for the decrypted data
f_decrypted=$(echo $f_encrypted | rev | cut -c6- | rev)
crypt4gh decrypt --sk my-key.sec < "$f_encrypted" > $f_decrypted
done
Skripti voidaan suorittaa komennoilla:
Salauksen purkaminen Windows PowerShellillä
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ää sen sijaan komentoa sda-cli.exe. Tässä tapauksessa salasana voidaan tallentaa muuttujaan C4GH_PASSWORD.
Sda-cli.exe-komento voidaan ladata osoitteesta: https://github.com/NBISweden/sda-cli/releases
Kun komento on saatavilla, salauksen purku voidaan tehdä seuraavilla PowerShell-komennoilla. Tässä oletamme, että purettava data on hakemistossa E:\data1.