Md5 et System.Security.Cryptography

Résolu
cs_User8 Messages postés 30 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 13 novembre 2012 - 12 août 2009 à 17:43
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 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?

3 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 août 2009 à 01:40
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.
3
cs_User8 Messages postés 30 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 13 novembre 2012
13 août 2009 à 10:27
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?
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
13 août 2009 à 15:58
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.
0
Rejoignez-nous