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

Composants VCL Delphi Discussion :

DCPCrypt ou autre composant pour le MD5


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Par défaut DCPCrypt ou autre composant pour le MD5
    Bonjour,
    Je suis à la recherche d'un composant ou d'un ensemble de composant permettant de calculer des hash MD5 (et autres hashs plus évolués) sous Delphi XE2.
    J'ai trouvé DCPCrypt qui marche sans problème à l'exception d'une chose : impossible d'afficher une barre de progression durant le calcul du hash...
    Si quelqu'un sait comment afficher ceci je suis preneur, avec ce composant ou un autre.
    Merci !

  2. #2
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Lancez le calcul dans un thread et pendant ce temps affichez une animation d'attente (les barres de progression qui bouclent qui sont utilisés quand on a un traitement dont on ne connait pas le temps ni la progression).

    Sinon en composant il existe LockBox http://sourceforge.net/projects/tplockbox/

    Il me semble qu'avec Indy on peut également calculer le Hash MD5 d'un stream (donc en utilisant un TfileStream on peut facilement récupérer le hash MD5)

    En payant il y les composants dédiés sécurité de chez Eldos qui doivent le faire. Mais ca fait cher si vous n'avez besoin que du HashMD5...

    Sinon on trouve des unités delphi avec les sources de l’algorithme HASH MD5 libre à vous le modifier les sources (enfin sous réserve que la licence vous l'autorise) pour y insérer la notion de progression...

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Par défaut
    Merci pour les infos.
    Concernant le hash MD5, DCPcypt semble très bien fonctionner (avec un TFileStream pour la gestion du fichier).
    Le point bloquant est l'absence d'indication de la progression du hash pour les gros fichiers. J'ai essayé de bricoler un peu les sources pour y adapter une ProgressBar mais rien de concret pour le moment...

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par NicCo Voir le message
    Merci pour les infos.
    Concernant le hash MD5, DCPcypt semble très bien fonctionner (avec un TFileStream pour la gestion du fichier).
    Le point bloquant est l'absence d'indication de la progression du hash pour les gros fichiers. J'ai essayé de bricoler un peu les sources pour y adapter une ProgressBar mais rien de concret pour le moment...
    la progression étant liée à la lecture de fichier, il doit être possible de dériver TFileStream pour y intégrer la gestion de la progression, en surchargeant la fonction Read probablement.

    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
     
    type
      TProgressFileStream = class(TFileStream)
      private
        FOnProgress: TNotifyEvent;
      public
        function Read(var Buffer: TBytes; Count: Longint o): Longint; override;
        property FOnProgress: TNotifyEvent read FOnProgress write FOnProgress;
      end;
     
    procedure TProgressFileStream.Read(var Buffer: TBytes; Count: Longint): Longint; 
    begin
      inherited;
      if Assigned(FOnProgress) then
       FOnProgress(Self);
    end;

    évidemment si le code lit le fichier par paquet, la progression sera éventuellement saccadée.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Par défaut
    Merci pour cet exemple de code, je vais le tester
    Par contre tu spécifies comment la progressbar que tu veux utiliser ? La saccade n'est pas un problème au cas où.

  6. #6
    Membre Expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 052
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 052
    Par défaut
    Il faut que tu crées une procédure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private
      procedure GestionProgressBar(Sender: TObject);
    Après la création de ton TProgressFileStream il faut que tu assignes GestionProcessBar à la propriété FOnProgress.

    Et c'est donc dans ta procédure GestionProgressBar que tu vas devoir gérer la progression de ta barre. A chaque Read du stream GestionProgressBar sera appelé.

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

Discussions similaires

  1. [CB6] Utilisation de DCPcrypt ou Lockbox pour le MD5
    Par Faith's Fall dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/03/2008, 11h14
  2. autre probleme pour deriver fonction
    Par voyageur dans le forum Mathématiques
    Réponses: 15
    Dernier message: 28/07/2003, 14h37
  3. [Kylix] cherche composants pour les sockets
    Par coriolis dans le forum EDI
    Réponses: 1
    Dernier message: 09/04/2003, 10h18
  4. [Kylix] Trouver des composants pour Kylix 3
    Par busy999 dans le forum EDI
    Réponses: 2
    Dernier message: 17/02/2003, 14h01
  5. Composant pour créer du HTML
    Par Morvan Mikael dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 17h41

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