Script Shell assez simple

Fermé
Lola - 8 oct. 2012 à 23:04
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 - 14 oct. 2012 à 15:19
Bonjour,

Bonjour,
J'ai un problème sur lequel je planche depuis plus d'une journée.
J'ai un Script SH qui a pour but de lire un fichier ligne par ligne. Jusque la : tout marche.
Dans ce fichier se trouve des e-mails.
Le problème, c'est que ces e-mails doivent être confidentiels, j'aimerai donc qu'ils ne soit pas inscrits en clair dans ce fichier. Je voudrais par exemple qu'il y ai inscrit dans le fichier emails.txt :
JgD5f6dfg5
sdk45dfkKj54
Kjidj54s6Sq
Jkd54fwklUJgsi
(blabla)
Et que mon Script SH puisse décoder chaque ligne afin d'en récupérer un e-mail !
Je ne sais ni quoi utiliser (fonction, procédé...) ni par ou commencer.
Le cryptage n'a pas besoin d'être complexe, à partir du moment ou il n'est plus possible de savoir qu'il s'agit d'adresse mail.
Merci de votre aide !
ps : J'utilise #!/bin/sh

A voir également:

5 réponses

dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
14 oct. 2012 à 13:59
hello
remplacer uuencode par base64
1
salut,

simplement? avec uuencode
$ ligne=$(echo "le contenu d'une ligne"  | uuencode -m - | sed -n 2p)
$ echo "$ligne"
bGUgY29udGVudSBkJ3VuZSBsaWduZQo=
$ printf 'begin-base64 644 -\n%s\n====' "$ligne" | uudecode 
le contenu d'une ligne
0
Salut,

En mode très simple si tu as openssl installé.

Pour chiffrer :

echo machaine | openssl enc -des3 -base64 -nosalt -pass pass:monpass


Pour déchiffrer :
echo machaine | openssl enc -d -des3 -base64 -nosalt -pass pass:monpass


A mettre où tu veux, scripts à part, fonctions...

Option -d pour déchiffrer
des3 = algorithme (y en a plein d'autres, au choix...)
base64 = histoire d'avoir de caractères potables
nosalt = pas de sel aléatoire

Exemple de fichier encode.sh
#!/bin/sh
echo $1 | openssl enc -des3 -base64 -nosalt -pass pass:$2


Appel du fichier encode.sh
sh encode.sh machaine monpass


Voilou
0
Merci beaucoup qqchquicommenceparQ et Pedrooo !
J'ai lu avec beaucoup d'attention vos 2 solutions.
J'ai commencé par celle de qqchquicommenceparQ, le problème c'est que la fonction "uuencode" n'étais pas valide. (command not found)
DU coup je me suis attardé sur la solution de Pedrooo, et cela a très bien fonctionné ! Open Ssl était deja installé sur mon post, reste plus qu'à vérifier qu'il y soit sur tous les autres.
Merci à vous :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour dubcek,
merci pour ta réponse, mais quand je remplace uuencode par base64, j'ai une erreur :
base64: invalid option -- 'm'
Try 'base64 --help' for more information.
0
Utilisateur anonyme
14 oct. 2012 à 14:41
dans le cas de l'utilisation de base64 (que je plussoie), la commande sed n'est plus nécessaire.

base64 est encore plus simple que uu(en/de)code.
0
Okay, mais pourrai-je avoir un exemple d'utilisation ?
0
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
14 oct. 2012 à 15:19
voila
$ ligne=$(echo "le contenu d'une ligne"  | base64)
$ echo $ligne
bGUgY29udGVudSBkJ3VuZSBsaWduZQo=
$ 
$ echo $ligne | base64 -d
le contenu d'une ligne
$ 
0