Skripti asc85pac.sh pakkaa tiedostot alihakemistossa, jonka jälkeen se salaa pakatun tiedoston ja vielä Ascii85-koodaa sen. Samainen skripti toimii myös kyseisen paketin purkamiseen. Skripti vaatii paketit ruby-ascii85 ja openssl asennettuna sekä 8 gigatavua vapaana olevaa RAM-muistia (pakkaus) tai hieman alle yhden gigatavun (purku).
Käyttöohje:
Laita skripti asc85pac.sh ja tiedosto nimeltä salasana.txt samaan hakemistoon. Kirjoita salasana.txt-tiedostoon yksi, ylin rivi, jolla on haluamasi salasana. Koska salasana säilötään tiedostoon, eikä sinun tarvitse sitä muistaa, voit tehdä siitä varsin pitkän ja sekavan (esim. "3i{kI722I}5v1:7TFG6BwEE%R3[K+9;+(G#R[fp._6'G%VHNl484174RV#r6d3mx" on hyvä). Älä missään vaiheessa poista salasana.txt -tiedostoa, koska tarvitset salasanaasi myöhemmin. Tee tuohon hakemistoon myös alihakemisto nimeltä tiedostot.
Perusjuttu on, että ennen skriptien ajamista niille pitää antaa kerran ajo-oikeus, ja se onnistuu terminaalissa kirjoittamalla chmod +x skriptinnimi.sh ja toinen, että ajo-oikeuden saanut skripti ajetaan kirjoittamalla ./skriptinnimi.sh
Käsiteltävät (pakattavat, salattavat ja Ascii85-koodattavat) tiedostot laitetaan tuohon tiedostot-alihakemistoon, jonka jälkeen skripti päähakemistossa ajetaan ja valitaan vaihtoehto 1. Skripti luo päähakemistoon tekstitiedoston nimeltä tiedostot_tar_xz_aes_a85.txt, joka sisältää alkuperäiset tiedostot Ascii85-tekstiksi koodattuna, jonka jälkeen se tuhoaa tiedostot-alihakemistossa olevat tiedostot (jotka on nyt eri muodossa siirretty tuohon pitkänimiseen tiedostoon). Tiedoston nimihän on valitettavan pitkä, koska nimi pyrkii ilmaisemaan, että kyseessä on tar.xz-paketti joka on lisäksi AES-256-salattu, Ascii85-koodattu ja joka aukeaa tekstitiedostona.
Vaihtoehto 2 eli "purku" taasen toimii päinvastaisesti, eli muuttaa päähakemistossa olevan tiedostot_tar_xz_aes_a85.txt:n sisällön takaisin alkuperäiseen muotoonsa tiedostot-kansioon, eli dekoodaa Ascii85:n takaisin binaaritiedostoksi, dekryptaa jo dekoodatun tiedoston salasana.txt:n sisältämää salasanaa hyödyntäen ja lopulta purkaa sen. Huomaa, että purkaessa lähdetiedoston nimen pitää olla tiedostot_tar_xz_aes_a85.txt ja sen tulee olla päähakemistossa.
Koska skripti poistaa lähdetiedostot itsenäisesti tekemättä varmuuskopioita, on syytä pitää alkuperäisversiot tiedostoistaan toisaalla operaation ajan ja operoida kopioiden parissa, ettei mikään mene vahingossa pieleen.
Käyttötarkoitus ja toimintaperiaate:
Käyttötarkoitus on omien tiedostojen formaatista riippumaton varmuuskopiointi tai suljetun ryhmän sisällä jakaminen ilman minkäänlaisen käyttäjätilin rekisteröintiä esimerkiksi pastebin-palveluja hyödyntäen. Pakkaus pienentää kokoa, salaus estää ulkopuolisten pääsyn dataan ja Ascii85-koodaus mahdollistaa "tekstimuodossa" varastoinnin. Ascii85-koodaus on valittu, koska se on vakaa ja hyvin tuettu, mutta kasvattaa tiedostokokoa vähemmän kuin Base64.
#!/usr/bin/env bash # Skripti asc85pac.sh pakkaa, salaa ja Ascii85-koodaa tiedostot. # # Käyttö: Keksi mieluiten pitkä salasana ja laita se salasana.txt # -tiedostoon joka on samassa hakemistossa skriptin kanssa, ylimmälle # riville. Tee tiedostot-niminen alihakemisto skriptihakemistolle johon # sijoitat käsiteltävät tiedostot ennen niiden pakkaamista. Pakkaamisen # jälkeen päähakemistoon ilmestyy tiedosto nimeltä # tiedostot_tar_xz_aes_a85.txt joka sisältää kaikki alkuperäistiedostot # pakattuna, AES256-salattuna ja Ascii85-koodattuna. Ennen purkamista # nimeä purettava tiedosto tuolla aiemmin mainitulla nimellä # tiedostot_tar_xz_aes_a85.txt ja sijoita se päähakemistoon. Puretut # tiedostot ilmestyvät tiedostot-alihakemistoon. # # Skripti julkaistu 6.2.2026, Totin tuotantoa. echo echo -n "Kirjoita 1 pakataksesi, 2 purkaaksesi: " read user_input if [ "$user_input" = "1" ]; then echo echo "Pakataan..." tar -cf - tiedostot/ | xz --lzma2=dict=768Mi,nice=273 -c - > tiedostot.tar.xz rm tiedostot/* openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 250000 -salt -in tiedostot.tar.xz -out tiedostot_tar_xz.aes -pass file:salasana.txt rm tiedostot.tar.xz cat tiedostot_tar_xz.aes | ascii85 > tiedostot_tar_xz_aes_a85.txt rm tiedostot_tar_xz.aes echo "Valmis!" echo elif [ "$user_input" = "2" ]; then echo echo "Puretaan..." cat tiedostot_tar_xz_aes_a85.txt | ascii85 -d > tiedostot_tar_xz.aes rm tiedostot_tar_xz_aes_a85.txt openssl enc -aes-256-cbc -d -md sha512 -pbkdf2 -iter 250000 -salt -in tiedostot_tar_xz.aes -out tiedostot.tar.xz -pass file:salasana.txt rm tiedostot_tar_xz.aes tar -xf tiedostot.tar.xz rm tiedostot.tar.xz echo "Valmis!" echo else echo echo "Keskeytetty; et valinnut vaihtoehtoa 1 tai 2." echo fi