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 :

Chiffrement ligne de fichier


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    Par défaut Chiffrement ligne de fichier
    Je voudrais chiffrer un fichier texte ligne à ligne, c'est à dire que je puisse aller à une ligne avec des readln et chiffrer ou déchiffrer cette ligne. Il ne faut pas que l'encodage contienne de CR (#13) car sinon je n'aurais pas le même nombre de ligne dans mon fichier en clair et mon fichier codé.

    Mon but étant de créer une dll contenant des fonctions de chiffrement (Cesar, Vigenere, xor, Blowfish ou autres...),
    Que je puisse chiffrer un fichier entier sans se soucier des lignes ou un fichier texte ligne à ligne.
    Le fichier peut contenir les 256 caractères de la table sauf le #0 car les paramètres sont des PWideChar et donc à #0 terminal.
    Dans un cas, je me fiche des CRLF car tout le fichier est codé et dans l'autre cas je traite ligne à ligne.

    Quelle serait la marche à suivre pour faire cette DLL. Quelles sont vos suggestions ?

    Quelle chiffrement utilisez vous en Delphi ? Avez vous des composants, sources de chiffrement ?

  2. #2
    Membre actif
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Décembre 2014
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Décembre 2014
    Messages : 105
    Points : 235
    Points
    235
    Par défaut
    Salut,
    Moi je ferais un prog qui chiffrerais ligne à ligne (donc avec un readln), et je récrirai une ligne chiffrée mais en hera ou decimal, tu garderais le nombre de lignes mais elle seraient doublées (hexa) ou triplées (decimal).
    Ca permettrait de lire le fichier crypté également avec des readln.
    C est tout facile.
    solilog

  3. #3
    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
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    Gudul : Quelle chiffrement utilisez vous en Delphi ? Avez vous des composants, sources de chiffrement ?
    Il y a ici une solution intéressante library CryptoV64 : http://www.developpez.net/forums/d14...-epilogue-2-a/
    et ce code permet de crypter/décrypter aussi bien du texte que des fichiers-image.

    Et cette discussion constitue l'achèvement de celle-ci : http://www.developpez.net/forums/d14...ier-byte-byte/
    où l'on trouve un chiffrement Vigenere et d'autres.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut CESAR
    Bonjour,
    Voici CESAR

    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
    procedure TForm1.Button1Click(Sender: TObject);
    var
      st1, st2, st3, st4: string;
      i1, i2, i3, i4 : integer;
    begin
      st1 := 'JESUISLEMESSAGEENCLAIR';
      st2 := 'CESARCESARCESARCESARCE';
      st3 := '';
      for i1 := 1 to length(st1) do
      begin
        i2 := ord(st1[i1]) - 65;
        i3 := ord(st2[i1]) - 65;
        st3 := st3 + chr(((i2 + i3 + 1) mod 26) + 65);
      end;
      st4 := '';
      for i1 := 1 to length(st1) do
      begin
        i2 := ord(st3[i1]) - 65;
        i3 := ord(st2[i1]) - 65;
        st4 := st4 + chr(((26 + i2 - i3 -1 ) mod 26) + 65);
      end;
      ListBox1.clear;
      ListBox1.Items.add(st1);
      ListBox1.Items.add(st2);
      ListBox1.Items.add(st3);
      ListBox1.Items.add(st4);
    end;

  5. #5
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    Par défaut
    Merci pour vos réponses.

    Pour le Cesar, j'ai déjà fait ma version sans la restriction des 26 caractères mais sur les 255 caractères ascii. Il faut pouvoir codé un texte avec des ponctuations, des retour chariot, des caractères non imprimable...
    Idem pour le Vigenère, Je traite sur un tableau de 256 x 256 caractères et non sur les 26 alpha.

    C'est surtout que le chiffrement trouvé sur internet proposent toujours le chiffrement/déchiffrement d'un fichier complet mais jamais de lignes dans un fichier.
    Le problème de ces algo est qu'ils peuvent renvoyer des #0 ou #13 dans le texte codé, ce qui pose problème pour traiter en chaîne à zéro terminal ou de traiter ligne à ligne sans créer de retour chariot.

  6. #6
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut Peut être une solution
    pourquoi ne passe tu pas par un cesar sur 254 caractères en remplaçant les #13 par #255 avant codage et l'inverse au retour

  7. #7
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    Par défaut
    Le caractère #255 pourrait être utilisé
    Ma solution, pour l'instant est de remplacer les #0 et les #13 (si je veux à la ligne) après chiffrement par #27#1 et #27#2 et le #27 par #27#27. En déchiffrement, je regarde si j'ai un #27 et je converti le caractère suivant à l'inverse.

    Je voulais surtout savoir si d'autres personnes avait traité le cas et quelle était leur solution.

    Le Cesar est vite craqué, le vigenère un un stade au dessus et je cherche un algo plus complexe pour le 3 eme niveau.

  8. #8
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par gudul Voir le message
    Quelle chiffrement utilisez vous en Delphi ? Avez vous des composants, sources de chiffrement ?
    Quelques éléments sont référencés sur ce site même :
    http://delphi.developpez.com/freewar...phieProtection
    Philippe.

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/02/2006, 09h14
  2. [Fichier] ecrire a une ligne de fichier
    Par woorant dans le forum Langage
    Réponses: 4
    Dernier message: 17/01/2006, 18h52
  3. Réponses: 2
    Dernier message: 06/11/2005, 23h38
  4. [JtextArea] Transmetre les sauts de ligne à un fichier
    Par romuluslepunk dans le forum Composants
    Réponses: 4
    Dernier message: 04/08/2005, 21h34
  5. Awk - Traiter chaque ligne du fichier passwd
    Par tony montana dans le forum Linux
    Réponses: 7
    Dernier message: 25/03/2004, 09h40

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