Posez votre question Signaler

[C] Hashage MD5

Bakux 584Messages postés 19 février 2009Date d'inscription 25 mars 2011Dernière intervention - Dernière réponse le 7 sept. 2009 à 18:57
Bonjour,
Je programme en C et je voudrais savoir comment hasher un mot en md5 ?
Merci bcp ^^
Lire la suite 

[C] Hashage MD5 »

Suggestions
14 réponses
Réponse
+0
moins plus
Si t'es sous Windows, utilise CryptoAPI.
Ajouter un commentaire
Réponse
+0
moins plus
T'as un lien stp ?
Ajouter un commentaire
Réponse
+0
moins plus
J'en ai même deux :
- MSDN, LA référence en programmation Windows : http://msdn.microsoft.com/en-us/library/aa382453%28VS.85%29.aspx
- Un code d'exemple sur CPPFrance : http://files.codes-sources.com/fichier.aspx?id=28273&f=main.c
Ajouter un commentaire
Réponse
+0
moins plus
Merci bcp ^^ Je teste
Ajouter un commentaire
Réponse
+0
moins plus
Mais il existe pas une fonction spécifique, je veux dire sans utiliser le main, du genre :

char md5 (char acoder[]){

blablabla ...

return code;
}

int main (){

md5(Bonjour);

}


??
Ajouter un commentaire
Réponse
+0
moins plus
Tu dois la créer toi-même.
Ajouter un commentaire
Réponse
+0
moins plus
Il y a un problème ... Je cherche une fonction de Hash md5 pour un char, pas pour un fichier ...
Ajouter un commentaire
Réponse
+0
moins plus
Personne n'a une fonction deja faite ??
Ajouter un commentaire
Réponse
+0
moins plus
Up ^^ XD
Ajouter un commentaire
Réponse
+0
moins plus
J'ai ça en C++ :
#define WIN32_LEAN_AND_MEAN
#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#include <wincrypt.h>
#include <stdio.h>

char* GenericHash(unsigned int AlgId,char* Buffer, int lBuffer)
{
	HCRYPTPROV hProv; HCRYPTHASH hHash;
	BYTE* Hash; DWORD lHash, len;

	if (CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,CRYPT_VERIFYCONTEXT | CRYPT_MACHINE_KEYSET))
	{
		if (CryptCreateHash(hProv,AlgId,0,0,&hHash))
		{
			if (CryptHashData(hHash,(BYTE*)Buffer,lBuffer,0))
			{
				if (CryptGetHashParam(hHash,HP_HASHSIZE,(BYTE*)&lHash,&len,0))
				{
					Hash = new BYTE[lHash];
					if (!Hash) return NULL;
					if (!CryptGetHashParam(hHash,HP_HASHVAL,Hash,&lHash,0))
					{
						delete[] Hash;
						return NULL;
					}
				}
			}
			else return NULL;
		}
		else return NULL;
	}
	else return NULL;

	CryptDestroyHash(hHash);
	CryptReleaseContext(hProv,0);

	char* sHash = new char[lHash*2+1]; memset(sHash,0,lHash*2+1);
	for (unsigned char i = 0; i <= lHash-1; i++)
	{
		sprintf(sHash+(i*2),"%02X",Hash[i]);
	}
	delete[] Hash;
	return sHash;
}
Ajouter un commentaire
Réponse
+0
moins plus
Personne en C ??
Ajouter un commentaire
Réponse
+0
moins plus
> Mais il existe pas une fonction spécifique,
Si , il y a les apis MD5 sous Windows (cf chez les pros pour les exemple http://minilien.com/?RVy0VjBes7)
ghuysmans99 - 7 sept. 2009 à 18:57
C'est le code que j'ai montré.
Il suffit de recoder mon bout de programme en C, ça devrait pas être trop dur ...
Ajouter un commentaire
Ce document intitulé « [C] Hashage MD5 » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook