Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

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, ja tällaisissa tapauksissa 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:

  1. Silmukan muodostamisen, joka etsii salatut tiedostot ja suorittaa salauksen purkukomennon.

  2. Menetelmän, joka antaa salauksen purkukomennolle automaattisesti salauksen purkamisen salasanan.

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:

read C4GH_PASSPHRASE
export C4GH_PASSPHRASE

Find-komentoa voidaan käyttää listaamaan kaikki tiedostot, jotka päättyvät .c4gh:hon annetussa hakemistossa (data1) ja sen alihakemistoissa. Tätä listaa voidaan käyttää for-silmukan syötteenä.

find data1 -name *.c4gh

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 näin tiedostonimen puretulle datalle.

Varsinainen salauksen purku tehdään komennolla:

crypt4gh decrypt --sk my-key.sec < encrypted-file > decrypted-file

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:

  chmod u+x decryption_script
  ./decryption_script

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.

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

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta