Script Shell assez simple

Lola -  
dubcek Messages postés 18627 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

5 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    remplacer uuencode par base64
    1
  2. 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
  3. 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
  4. 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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. 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
    2. Lola
       
      Okay, mais pourrai-je avoir un exemple d'utilisation ?
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      voila
      $ ligne=$(echo "le contenu d'une ligne"  | base64)
      $ echo $ligne
      bGUgY29udGVudSBkJ3VuZSBsaWduZQo=
      $ 
      $ echo $ligne | base64 -d
      le contenu d'une ligne
      $ 
      
      0