Script Shell assez simple

Lola -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
remplacer uuencode par base64
1
Utilisateur anonyme
 
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
Pedrooo
 
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
Lola
 
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
Lola
 
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
 
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
Lola
 
Okay, mais pourrai-je avoir un exemple d'utilisation ?
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
voila
$ ligne=$(echo "le contenu d'une ligne"  | base64)
$ echo $ligne
bGUgY29udGVudSBkJ3VuZSBsaWduZQo=
$ 
$ echo $ligne | base64 -d
le contenu d'une ligne
$ 
0