Le Blog de Richard Goutorbe, consultant informatique à Montpellier  Le Blog de Richard Goutorbe, consultant informatique à Montpellier
http://www.montpellier-informatique.com/blog

Index

.

Crypter et décrypter des fichiers avec Linux

Pour transmettre des données sensibles par un canal non sécurisé (à partir d'un point d'accès wifi public par exemple, ou par FTP), il est prudent de les crypter au préalable. La commande openssl de Linux nous permet de le faire assez simplement.

Je présente ici deux shell scripts: encrypt.sh et decrypt.sh qui enrobent openssl et simplifient son usage.

Encrypt.sh crypte le(s) fichier(s) donnés en argument avec rc4.

La clé d'encodage est une chaine de caractères enregistrée dans le fichier spécifié par l'option -kfile de la commande openssl, ici: ~/bin/encryption_password.txt
Les fichiers cryptés sont créés dans le même répertoire que les fichiers originaux et portent le même nom qu'eux, avec l'extension ".enc".
 #!/bin/sh
 # encrypt.sh - Crypter le(s) fichier(s) donnes en argument avec rc4
 # Le(s) fichier(s) originaux sont inchanges, les fichiers cryptes resultants ont l'extension ".enc" ajoutee a leurs noms.
 #
 # 14-06-2008 Richard Goutorbe
 # http://www.montpellier-informatique.com/
 # Ce code peut etre reproduit librement a condition que cette entete
 # soit preservee. Tout changement apporte au code original doit etre signale clairement.
 # This code may be freely distributed as long as this header 
 # is preserved. Changes to the code should be clearly indicated.   

 for a in $* ; do
	srcname="$(basename $a)"
	trgname="$srcname.enc"
	echo "Encrypting $srcname to $trgname"
	openssl rc4 -kfile ~/bin/encryption_password.txt -salt -in  "$a" -out "$(dirname $a)/$trgname"
 done

Decrypt.sh décrypte le(s) fichier(s) donnés en argument avec rc4.

La clé d'encodage, qui est une chaine de caractères enregistrée dans le fichier spécifié par l'option -kfile de la commande openssl, doit évidemment être la même que celle qui a servi à encrypter les données originales.
Le(s) fichier(s) cryptés sont inchangés, les fichiers en clair résultants ont l'extension ".enc" retirée de leurs noms, ils sont créés dans le même répertoire que les fichiers cryptés.
Note: si un fichier crypté n'a pas l'extension ".enc", alors le fichier en clair résultant a l'extension ".plain" ajoutée a son nom.
 #!/bin/sh
 # decrypt.sh - Decrypter le(s) fichier(s) donnes en argument avec rc4
 # Le(s) fichier(s) cryptes sont inchanges, les fichiers en clair resultants ont l'extension ".enc" retiree de leurs noms.
 # Note: si un fichier crypte n'a pas l'extension ".enc", alors le fichier en clair resultant a l'extension ".plain" ajoutee a son nom.
 #
 # 14-06-2008 Richard Goutorbe
 # http://www.montpellier-informatique.com/
 # Ce code peut etre reproduit librement a condition que cette entete
 # soit preservee. Tout changement apporte au code original doit etre signale clairement.
 # This code may be freely distributed as long as this header 
 # is preserved. Changes to the code should be clearly indicated.   

for a in $* ; do

	srcname="$(basename $a)"
	trgname="$(basename $a .enc)"
	if [ "$trgname" = "$srcname" ] ; then
		trgname="$srcname.plain"
	fi
	echo "Decrypting $srcname to $trgname"
	openssl rc4 -kfile ~/bin/encryption_password.txt -d -in  "$a" -out "$(dirname $a)/$trgname"

done

Liens:

 
Page last modified on July 27, 2009, at 12:00 PM