Md5 et System.Security.Cryptography [Résolu]

Messages postés
30
Date d'inscription
jeudi 24 juillet 2008
Dernière intervention
13 novembre 2012
- - Dernière réponse : f0xi
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
- 13 août 2009 à 15:58
Hello,

Je cherche à utiliser l'objet System.Security.Cryptography.MD5CryptoServiceProvider afin d'effectuer un hashage sur un ensemble de fichiers.

Je concatène toutes les données de mes fichiers dans un TMemoryStream et maintenant je souhaiterai calculer ma valeur de hashage sur le contenu de ce stream.
HashedData := CreateOleObject('System.Security.Cryptography.MD5CryptoServiceProvider');
   
for bou:=0 to (FluxTemp.size)-1 do
Begin
       FluxTemp.ReadBuffer(Buffer, 1);
       HashedData.HashCore(IntToStr(buffer));
End;

Result := HashedData.HashFinal;

A l'exécution, j'ai une erreur car HashCore n'est apparemment pas reconnu.

Pour info, j'avais développé cette méthode en utilisant CAPICOM. Mais CAPICOM n'est plus maintenu et microsoft conseille de passer à System.Security.Cryptography.

Quelqu'un aurait il une idée pour résoudre ce problème?
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
3
Merci
utilise mon API TinyHash comme le suggere rt15.

tu aura accés a MD4, MD5 et SHA1, elle te fournira aussi des fonctions pour le hash de stream, de fichier, de chaine etc.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 104 internautes nous ont dit merci ce mois-ci

Commenter la réponse de f0xi
Messages postés
3982
Date d'inscription
mardi 8 mars 2005
Dernière intervention
7 novembre 2014
1
Merci
Salut,

Tu as vérifié HashedData, retourné par CreateOleObject ?
Il est important de vérifier les valeurs des retours de fonctions quand elles ont une chance d'échouer, ce qui est le cas ici.

System.Security.Cryptography.MD5CryptoServiceProvider, c'est pas du COM, c'est du .NET (Techno pseudo-interprétée). Microsoft s'est peut être arrangé pour que l'on puisse l'utiliser via COM, mais c'est pas forcé.

Tu as des sources MD5 pleins ce site. Regarde ici ou .
Commenter la réponse de cs_rt15
Messages postés
30
Date d'inscription
jeudi 24 juillet 2008
Dernière intervention
13 novembre 2012
0
Merci
En effet, l'API TinyHash est très intéressante! Les fonctions de hashage de advapi32.dll sont très faciles d'utilisation. Existe-il une doc sur les autres fonctionnalités de cette dll?

Juste une petite question, advapi32.dll est présent sur tous les systèmes windows?
Commenter la réponse de cs_User8
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
0
Merci
les autres fonctions de cryptage peuvent être interessante oui, sinon logiquement oui, advapi32.dll doit etre presente sur tout les windows > NT4, 2000, XP, 2003, Vista, 2008 et 7.
Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.