[C] Hashage MD5

Bakux Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   -  
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je programme en C et je voudrais savoir comment hasher un mot en md5 ?

Merci bcp ^^
A voir également:

12 réponses

ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
Si t'es sous Windows, utilise CryptoAPI.
0
Bakux Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   188
 
T'as un lien stp ?
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
J'en ai même deux :
- MSDN, LA référence en programmation Windows : https://docs.microsoft.com/en-us/windows/win32/seccrypto/hashing?redirectedfrom=MSDN
- Un code d'exemple sur CPPFrance : https://codes-sources.commentcamarche.net/
0
Bakux Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   188
 
Merci bcp ^^ Je teste
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bakux Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   188
 
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);

}


??
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
Tu dois la créer toi-même.
0
Bakux Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   188
 
Il y a un problème ... Je cherche une fonction de Hash md5 pour un char, pas pour un fichier ...
0
Bakux Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   188
 
Personne n'a une fonction deja faite ??
0
Bakux Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   188
 
Up ^^ XD
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
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;
}
0
Bakux Messages postés 1195 Date d'inscription   Statut Membre Dernière intervention   188
 
Personne en C ??
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
0
Hade
 
> Mais il existe pas une fonction spécifique,
Si , il y a les apis MD5 sous Windows (cf chez les pros pour les exemple https://www.ovh.co.uk/mail/
0
ghuysmans99 Messages postés 2496 Date d'inscription   Statut Contributeur Dernière intervention   340
 
C'est le code que j'ai montré.
Il suffit de recoder mon bout de programme en C, ça devrait pas être trop dur ...
0