IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Brouiller une chaine texte


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut Brouiller une chaine texte
    J'ai beau chercher ... il m'est impossible de retrouver la methode de cacul de clefs circulaires a base XOR avec un maximum de valeur avant de boucler ?

    Le but etant de brouiller une chaine texte de maniere un peu plus sofistiquee qu'un simple XOR a clef unique. Si je peux changer la permutation de la clefs a chaques caracteres ca serait cool.

    Tout autre algo (leger) dans le genre sera le bienvenu

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 190
    Par défaut
    bonjour

    euh j'ai pas tout compris a ta question pour moi un xor c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function CryptageXor(Cle,StrIn:string):string;//wn030825
    var
      i,loCle:integer;
      strOut:string;
    begin
      strOut:='';
      for i:=1 to Length(StrIn) do begin
        strOut:=strOut+chr(ord(strin[i]) xor ord(cle[(i mod length(cle))+1]));
      end;
      Result:=strOut;
    end;

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Oui, effectivement.
    La tu utilise une succession circulaire de clefs de 1 octets definie par la veritable clef.

    si tu transmet une cle composée de 10 caracteres, tu bouclera donc sur 10 clefs successives.

    C'est ce que je cherche a faire, mais j'ai entendu parler d'une formule qui genere automatiquement les clefs successifes.

    Exemple :
    out[1] = in[1] XOR key; key = next(key);
    out[2] = in[2] XOR key; key = next(key);
    out[3] = in[3] XOR key; key = next(key);
    ...

    Next(key) permet de calculer la clef suivante selon une formule que je recherche : decalage de bits + reintroduction d'un XOR sur certains bits.
    Mais je ne la retrouve plus
    Cette formule serait (a ce qu'il parrait) capable de genere une grande quantité (256 ?) de valeur avant de boucler.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Bonjour,

    Le but etant de brouiller une chaine texte de maniere un peu plus sofistiquee qu'un simple XOR a clef unique...Tout autre algo (leger) dans le genre sera le bienvenu.
    ... si c'est juste pour crypter une chaîne voiçi un code provenant de Paul THOT et qui dans son état actuel remplace les caractères accentués d'une chaîne par des caractères non accentués mais on peut y modifier la constante SansAccents : array[Char] of Char de sorte que la conversion obtenue brouille le texte d'origine (en y remplaçant par exemple le 'A' par ':', le 'Z' par 'ù' et ainsi de suite, à l'exception peut-être du #0 et du #8). Ensuite il suffit de créer les routines homologues pour décrypter dans le sens inverse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    const SansAccents : array[Char] of Char
                 =  #0#1#2#3#4#5#6#7#8#9#10#11#12#13#14#15 +
                    #16#17#18#19#20#21#22#23#24#25#26#27#28#29#30#31 +
                    ' !"#$%&''()*+,-./0123456789:;<=>?' +
                    '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'+
                    '`abcdefghijklmnopqrstuvwxyz{|}~'#127 +
                    '€'#129'‚ƒ„…†‡ˆ‰S‹Œ'#141'Ž'#143#144'‘’“”•–—˜™s›œ'#157'zY' +
                    #160'¡¢£¤¥¦§¨©ª«¬*®¯°±²³´µ¶·¸¹º»¼½¾¿' +
                    'AAAAAAÆCEEEEIIIIDNOOOOOרUUUUYÞß' +
                    'aaaaaaæceeeeiiiidnooooo÷øuuuuyþy';
     
    function EnleveAccentsPThot2(const AText : String) : string;
    var
     i:integer;
     p:pchar;
    begin
     Result:=AText;
     if Result='' then EXIT;  //<<<
     p:=@Result[1];
     for i:=1 to Length(Result) do begin
      p^:=SansAccents[p^];
      inc(p);
     end;
    end;
    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  5. #5
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Bonne suggestion, mais peu differente d'un simple tableau de bytes definissant "a la main" une succession de XOR.
    C'est d'ailleur peut etre ce que je devrais faire .... en changeant l'id d'entree dans le tableau ....

  6. #6
    Membre émérite
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    La fonction est de Paul Thot, mais la constante est de moi, ah mais !

    Pis j'avais fait une version assembleur il me semble.

Discussions similaires

  1. traitement d'une chaine texte
    Par aghilass dans le forum Développement
    Réponses: 5
    Dernier message: 05/06/2013, 16h03
  2. Traiter une chaine texte
    Par johweb dans le forum Débuter
    Réponses: 2
    Dernier message: 15/07/2008, 11h52
  3. PhpMyAdmin recherche de caractere dans une chaine text
    Par dalsim59 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/06/2008, 11h15
  4. Longueur d'une chaine Text sur l'écran
    Par GSXRider dans le forum C#
    Réponses: 2
    Dernier message: 20/02/2008, 09h23
  5. [IO]Récupérer une chaine texte dans un flux HTTP
    Par elitost dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/03/2005, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo