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

Langage Delphi Discussion :

Decrypt/Encrypte sur un String


Sujet :

Langage Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut Decrypt/Encrypte sur un String
    Bonjour tout le monde

    Je sais bien que ce sujet à déjà été discuté mais là je rencontre un problème.

    Si j'ai un string qui dépasse 255 caractères la procédure de cryptage me fait n'importe quoi !!!

    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
    26
    27
    28
    29
    30
    function TForm1.CryptDeCrypt(St:string;Key:integer;Decalage:Byte):string;
    var
      i :byte;
      StCrypt:string;
    begin
      StCrypt:='';
     
      for i:=1 to Length(St) do 
        StCrypt:= StCrypt + Char(Byte(St[i]) xor Key shr Decalage); le cryptage
     
      result:=StCrypt; 
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    Var
      str : String;
    begin
     Str := 'DPrincipal::FPrincipal;';
     Str := Str + 'DTaches::FTaches;';
     Str := Str + 'DFichiersClients::FFichiersClients;';
     Str := Str + 'DFichiersRessources::FFichiersRessources;';
     Str := Str + 'DFichiersEquipes::FFichiersEquipes;';
     Str := Str + 'DFichiersCategories::FFichiersCategories;';
     Str := Str + 'DFichiersObjets::FFichiersObjets;';
    // Str := Str + 'DFichiersCommunes::FFichiersCommunes;';
     
     Memo2.Text := CryptDeCrypt(Str,10500,6);
     Memo3.Text := CryptDeCrypt(Memo2.Text,10500,6);
     
    end;
    Cela paraît super bête, mais cela ne marche super pas... dés que je dépasse les 255 le result est faux et ne correspond en rien à ce que j'attends.

    Où est l'erreur ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 744
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 744
    Points : 13 300
    Points
    13 300
    Par défaut
    Regarde bien la déclaration de "i"

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Regarde bien la déclaration de "i"
    ça me rend dingue.... j'te jure, même pas fais attention.

    Entre temps j'ai trouvé une propal de Paul Thot qui est pas mal non plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure Crypt(var Data; Size: Integer; Seed: Cardinal);
    var
      p : PByte;
      i : Integer;
    begin
      RandSeed := Seed; // initialiser le générateur de nombres aléatoires
      p := @Data;
      for i := 0 to Size - 1 do
      begin
        p^ := p^ xor Random(255);
        Inc(p);
      end;
    end;
    @Merci

  4. #4
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 862
    Points : 11 323
    Points
    11 323
    Billets dans le blog
    6
    Par défaut
    RandSeed := Seed; // initialiser le générateur de nombres aléatoires
    disons plus justement pseudo-aléatoires, puisqu'on se sert précisément du fait que la même graine donne la même série ;-)
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. BufferOverflowException sur un String
    Par tomburn dans le forum Langage
    Réponses: 9
    Dernier message: 21/12/2005, 13h58
  2. Pb sur les String entre navigateurs
    Par chpog dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/09/2005, 10h59
  3. [Debutant] Pb sur les string
    Par chpog dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 16/09/2005, 12h03
  4. Realiser des tests exhaustifs sur les String
    Par Sarrus dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2005, 11h52
  5. [débutant]travailler sur contenu string
    Par Serge76 dans le forum SL & STL
    Réponses: 13
    Dernier message: 06/11/2004, 16h43

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