Prima un pò di storia.
L'altro giorno ho scritto un post dal titolo "Tac e rev" (qui); un post un pò insolito dal momento che presenta i caratteri rovesciati e le righe invertite. In un commento il carissimo ldl3 mi chiedeva se ero a conoscenza di un comando che capovolgesse il testo in modo speculare, proprio così: ¿ǝɹɐlnɔǝds uı ǝɔıldɯǝs oʇsǝʇ un ıɯɹoɟsɐɹʇ ǝɥɔ opuɐɯoɔ un ǝɥɔuɐ ǝʇsısǝ 'ɐɯıssıɔıʇɐdɯıs ,ǝ ɐsoɔ ǝɯoɔ
Non si è fatto attendere un altro amico, Lightuono. Lightuono, letto il commento di idl3, ha iniziato a stravolgermi l'esistenza. :D Si è messo subito sulle tracce di una probabile soluzione . Per un pò l'ho seguito ma poi, spazientito, ho preferito andare a cena e farmi una doppia razione di vino (1/2 litro o forse più) :D
Intanto l'infaticabile Lightuono (almeno quando si tratta di Linux) non è rimasto guardare. E' andato oltre. E' tutto riportato sul suo blog in un post dal titolo strano (Ti arrovescio il testo :) | pꞁɹoM oꞁꞁǝH). Ma del resto ditemi voi se c'è qualcosa di normale in questa storia! :)
Intanto Idl3 legge il post di Ligh e ne rimane affascinato; infatti ecco cosa dice in un commento al post in questione: " Chi l’avrebbe mai detto che la magia del testo rovesciato avrebbe intrigato anche te..."(riferendosi avviamente a Light)
Lightuono però non si dà pace. Cerca in tutti i modi una soluzione più ortodossa al problema. E proprio quando è sul punto di trovarla, ecco che arriva il secondo commento di Idl3; questa volta con la soluzione definitiva (qui)
Fine della storiella.
L'idea del mio post
L'idea del mio post nasce proprio dal commento di Lightuono in risposta a Idl3 e a Juhan (un altro caro amico): "A volte non c’è bisogno di grandi algoritmi per la criptazione..."
La sostanza del mio post
In pratica, ho preso la riga di comando di idl3, l'ho parzialmente modificata e ho creato due script. Uno per la criptazione e l'altro per la decriptazione di file di testo. Niente di particolare. Roba da poco.
Script n. 1 (che ho chiamato Cripta.sh). Questo script serve a criptare un file di testo.
Ecco il corpo dello script:
#!/bin/bash
chiave1=ɐqɔpǝɟƃɥıɾʞlɯuodbɹsʇnʌʍxʎz
chiave2=zaybxcwdevfvguhtjskrlqmpno
cat /home/bit3lux/Documenti/processo | tac | sed "y/abcdefghijklmnopqrstuvwxyz/$chiave1/" | tr "a-z" "$chiave2" >filecriptato
exit 0
Bisogna copiarlo su un file di testo e nominarlo come Cripta.sh
Io l'ho salvato nella cartella cartella documenti; per renderlo eseguibile, bisogna aprire un terminale e digitare:
$ sudo chmod +x Cripta.sh
Ovviamente ho usato il percorso dove era contenuto il mio file "processo"
quindi chi volesse usare questo script deve aggiungere il proprio percorso :D
Script n.2 Questo script serve a decriptare il file precedentemente criptato con Cripta.sh. L'ho chiamato Decripta.sh
Ecco il corpo dello script.
#!/bin/bash
chiave1=ɐqɔpǝɟƃɥıɾʞlɯuodbɹsʇnʌʍxʎz
chiave2=zaybxcwdevfvguhtjskrlqmpno
cat /home/bit3lux/Documenti/filecriptato | tac | tr "$chiave2" "a-z" | sed "y/$chiave1/abcdefghijklmnopqrstuvwxyz/" >filedecriptato
exit 0
Anche questo script va copiato su un file di testo e rinominato come Decripta.sh
L'ho salvato nella cartella documenti; per renderlo eseguibile, bisogna aprire un terminale e digitare:
$ sudo chmod +x Decripta.sh
Ho decriptato l'output dello script "Cripto.sh" Ovviamente dovete, anche in questo caso, cambiare il percorso con quello del vostro file. :)
Per lanciare sia il primo che il secondo script.
Mi sono spostato nella Directory dove ho salvato gli script e dove era contenuto il file da criptare (nel mio caso il file si chiama "processo")
$ cd Documenti
Per lanciare il primo script
$ ./Cripta.sh
Per lanciare il secondo script
$ ./Decripta.sh
Vi mosto l'output di entrambi gli script
Il risultato del primo script:
Il risultato del secondo script:
Non so se ciò di cui sto parlando può definirsi criptazione e decriptazione. Comunque c'ho provato :D
Ciao :D
Puoi mettere cat $1 ecc. Il file da criptare/decriptare lo indichi da terminale quando dai il comando. Cosi' non devi modificare lo script ogni volta. Inoltre puoi mettere tutto in un unico script, e scegli di volta in volta se devi criptare o decriptare. Bastano due if.
RispondiElimina#!/bin/bash
echo "Vuoi criptare (c) o decriptare (d)?"
read operazione
chiave1=ɐqɔpǝɟƃɥıɾʞlɯuodbɹsʇnʌʍxʎz
chiave2=zaybxcwdevfvguhtjskrlqmpno
if [ $operazione == c ]; then
cat $1 | tac | sed "y/abcdefghijklmnopqrstuvwxyz/$chiave1/" | tr "a-z" "$chiave2" >filecriptato
fi
if [ $operazione == d ]; then
cat $1 | tac | tr "$chiave2" "a-z" | sed "y/$chiave1/abcdefghijklmnopqrstuvwxyz/" >filedecriptato
fi
exit 0
Ahahahah ragazzi, siete dei grandi! :D
RispondiEliminaPer evitare che ci sia da cambiare il percorso ogni volta potresti usarlo come parametro dello script:
$ ./cripta.sh percorso
E all'interno dello script sostituisci '/home/bit3lux/Documenti/filecriptato' con $1, rendendolo più generale :)
@Idl3
RispondiEliminaGrazie assai; ora provo il tuo script.
Mattux
Gentilissimo come al solito. :)
Mi sa che scriverò un post a tal merito ;)
RispondiElimina@Lightuono
RispondiEliminaLa storia continua. :)
oooo ficata! Ragazzi siete proprie dei nerd xD
RispondiEliminaQuel genere di criptazione mi ricorda il codice di Cesare: http://it.wikipedia.org/wiki/Cifrario_di_Cesare
@Picchiopc
RispondiEliminameglio di cesare infatti sta tra poco arriverà il post con lo script migliorato ;)
@Picchio
RispondiEliminaHo dormito tutto il pomeriggio. Mi sono svegliato un attimo e ho moderato il tuo post. Sai, tengo il portatile sul comodino e non mi è difficile dare, ogni tanto, un controllatina. Mi ha svegliato, proprio adesso, il telefono. Peccato, stavo facendo un sogno che prendeva spunto dal tuo commento: Ero cesare! :)
Il post di light lo trovate alla seguente pagina
http://toshidex.org/2011/04/07/ti-arrovescio-il-testo-come-dio-comanda/
vorrei sapere cosa sarebbe il programma di decriptazione "codifica di cesare"
RispondiElimina