Criptage de données

Bonjour,

Pouvez vos m'aider!

je veux un script awk qui crypte les infos contenu ds trois positions different de mon fichier:
mon fichier est un fichier plat, les infos (qui est un numero de 10 ou 14 chifiers) a cripte sont a la position 4 ,36 et 98 ds le fichier
le criptage se fait ainsi:
Exemple fonction de criptage:

numero en 10 chiffres:
9999999999 -1234567909=8765432109

numero en 14 chiffres:
99999999999999 - 12345678909876 =87654321090123

16 réponses

  1. Contributeur
    Bonjour,

    Je veux => Je voudrai, j'aimerai, auriez-vous, etc.

    S'il vous plaît
    Merci
    Au revoir
    etc.
    Sont monnaie courante quand on veut obtenir quelque chose !

    Saine lecture...
    A voir aussi

    Merci de votre compréhension.

    ;-)
    1. Bonjour Zipe31,

      je suis desole ! que faut il faire ? j'ai trouve interesant ce site je me suis inscrie comme membre hier.
      merci de m'aide s'est important pr moi
      1. ma demande est il difficile a realisé? ou j'ai pas bien pose mon pb?
        1. Bonjour zipe31,

          Comme vs le dite : "Dans la vie on est toujours pauvre de savoir."

          Pouvez vs me dire comment faire pour ne plus rencontre de soucie sur le site.
          Certe je ne fais pas regulierement de scripte awk.
          1. Contributeur
            Désolé mais je n'ai pas de réponse à votre problème ;-((

            awk n'est pas ma tasse de thé et le cryptage encore moins ;-\
        2. est il possible de le faire en sed
          1. Contributeur
            Non sed n'est pas fait pour ça ;-(
        3. Contributeur
          Qu'entends-tu exactement par "crypter" ?

          Peux-tu poster un exemple AVANT => APRÈS de ce que tu veux ?
          1. cat fic1:
            01NUVISA9 7890207866 P86Y55110502
            01NUVISA9 8764896694 7890JYGPU62S
            ............
            ...........

            resultat fic2
            01NUVISA9 2109792133 P86Y55110502
            01NUVISA9 1235103305 7890JYGPU62S
            ............
            ...........

            la colonne 2 est calculé ainsi :
            999999999 - 7890207866 = 2109792133

            999999999 - 8764896694 = 1235103305
            1. Contributeur
              C'est loin d'être propre ;-((

              $ cat plop
              01NUVISA9 7890207866 P86Y55110502
              01NUVISA9 87648966940258 7890JYGPU62S
              
              $ awk '{B=$2;A=gsub(".","9",$2); print $1,$2-B,$3}' plop
              01NUVISA9 2109792133 P86Y55110502
              01NUVISA9 12351033059741 7890JYGPU62S
              $
              1. je constate que vs utilisez les colonnes pr les recherches! ($)
                il faut retrouver le nombre a crypte en utilisant la position
                ds ce fichier le nombre est apartir de la position 10 et est composé de 10 chiffres.
                le nombre est repete trois fois ds le meme enregistrement.
                (voir les explication plus haut)
                1. Contributeur
                  Oui, ben t'as un bon début de réponse pour savoir où chercher non ?

                  Ou on doit tout faire à ta place ?
              2. je suis un debutant et je s'utilise un doc de 6 pages pris sur le net
                doc (Cours utilisateur UNIX : La commande awk)
                1. je ne m'ensorts pas avec la commande :
                  awk '{B=substr($0,10,10);A=gsub(".","9",substr($0,10,10)); print substr($0,10,10)-B}' fic.txt
                  1. Merci pour votre aide:
                    mondiale scripte:
                    awk '{r="9999999999999999999"; gsub(substr($0,21,19),r - substr($0,21,19),$0); print}' FICH1.TXT> TD.TXT

                    le fichier en entrée FICH1.TXT
                    0000000000 2005011
                    2001NUVISAADWD0210773741215971622531478 11050204411105020441230 6P142 2 0212123741215971622531478000000+00000
                    2001NUVISAADWD0210715276211921622538007000 11050118481105011848560 6P142 2 0212145276211921622538007000000+00000
                    2001NUVISAADWD0210783331819761400353 000 11050209401105020940000 6P142 2 0212143331819761400353 000000+00000
                    2001NUVISAADWD0210773331819654907892169000 11050209401105020940150 6P142 2 0212143331819654907892169000000+00000
                    2001NUVISAADWD0210737331819654907891 000 11050209401105020940280 6P142 2 0212147331819654907891 000000+00000
                    2001NUVISAADWD0210773331819651478734367000 11050209401105020940410 6P142 2 0212143331819651478734367000000+00000
                    990000000000 2005011

                    fichier en sorti:
                    0000000000 1e+19
                    2001NUVISAADWD0210776.25878e+18 11050204411105020441230 6P142 2 0212126.25878e+18000000+00000
                    2001NUVISAADWD0210714.72379e+18000 11050118481105011848560 6P142 2 0212144.72379e+18000000+00000
                    2001NUVISAADWD0210789.99667e+18000 11050209401105020940000 6P142 2 0212149.99667e+18000000+00000
                    2001NUVISAADWD0210776.66818e+18000 11050209401105020940150 6P142 2 0212146.66818e+18000000+00000
                    2001NUVISAADWD0210739.99267e+18000 11050209401105020940280 6P142 2 0212149.99267e+18000000+00000
                    2001NUVISAADWD0210776.66818e+18000 11050209401105020940410 6P142 2 0212146.66818e+18000000+00000
                    990000000000 1e+19

                    mon probleme est que lors du remplacement du resultat, le format du resultat change:
                    3741215971622531478
                    devient: 6.25878e+18

                    je veux que le resultat s'ecrie sous cette forme: 6258784028377468521
                    l'entete et le pier de page ne soient pas modifié.