Rechercher : dans
Par :

[C] Hashage MD5

Dernière réponse le 7 sep 2009 à 18:57:04 Bakux, le 6 sep 2009 à 08:49:23 
 Signaler ce message aux modérateurs

Bonjour,

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

Merci bcp ^^

Configuration: Windows ... malheureusement ...

Meilleures réponses pour « [C] Hashage MD5 » dans :
[mythes] MD5 a été cassé VoirMythe MD5 a été cassé. Il n'est plus sûr. Il ne faut plus l'utiliser. Réalité FAUX. Explications Collisions La faille trouvée dans MD5 concerne la possibilité de trouver des collisions MD5 (c'est-à-dire des blocs de données différents...
[Gravure] Graver ou lire un fichier .BIN / .CUE VoirLes fichiers .bin et .cue sont respectivement : .BIN : une image de CD, c'est-à-dire une copie binaire d'un CD ou d'un DVD sous forme d'un fichier .CUE : informations sur les pistes du disque. Les fichiers .BIN / .CUE sont utilisables par...
La compilation et les modules en C et en C++ VoirCet article a pour vocation d'introduire les notions de bases de la compilation en C et en C++ et de la programmation modulaire. Il permet de mieux comprendre les messages d'erreur du compilateur. Les notions abordées ici sont indépendantes du...
Télécharger Visual C++ Express VoirVisual C++ Express est une version "gratuite" et allégée de Visual Studio ; l'utilisation requiert l'inscription sur le site de Microsoft. Cet environnement de développement permet de créer des application Win32 ou du .NET C.
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
Les structures en langage C VoirDifférence entre une structure et un tableau Un tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de...

1

ghuysmans99, le 6 sep 2009 à 09:00:45

Si t'es sous Windows, utilise CryptoAPI. VB.NET is good ... VB6 is better !

Répondre à ghuysmans99

2

Bakux, le 6 sep 2009 à 09:03:15

T'as un lien stp ?

Répondre à Bakux

3

ghuysmans99, le 6 sep 2009 à 09:17:04

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 VB.NET is good ... VB6 is better !

Répondre à ghuysmans99

4

Bakux, le 6 sep 2009 à 09:18:05

Merci bcp ^^ Je teste

Répondre à Bakux

5

Bakux, le 6 sep 2009 à 09:20:48

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);

}


??

Répondre à Bakux

6

ghuysmans99, le 6 sep 2009 à 09:49:40

Tu dois la créer toi-même. VB.NET is good ... VB6 is better !

Répondre à ghuysmans99

7

Bakux, le 6 sep 2009 à 15:16:30

Il y a un problème ... Je cherche une fonction de Hash md5 pour un char, pas pour un fichier ...

Répondre à Bakux

8

Bakux, le 6 sep 2009 à 16:32:44

Personne n'a une fonction deja faite ??

Répondre à Bakux

9

Bakux, le 6 sep 2009 à 20:03:51

Up ^^ XD

Répondre à Bakux

10

ghuysmans99, le 6 sep 2009 à 23:04:40

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;
}
VB.NET is good ... VB6 is better !

Répondre à ghuysmans99

11

Bakux, le 7 sep 2009 à 06:43:32

Personne en C ??

Répondre à Bakux

12

lami20j, le 7 sep 2009 à 07:51:40

Salut,

Regarde ici http://www.siteduzero.com/forum-83-89874-p1-md5-en-c.html 106485010510997108

Répondre à lami20j

14

Hade, le 7 sep 2009 à 08:33:33

> 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)

Répondre à Hade

15

 ghuysmans99, le 7 sep 2009 à 18:57:04

C'est le code que j'ai montré.
Il suffit de recoder mon bout de programme en C, ça devrait pas être trop dur ... VB.NET is good ... VB6 is better !

Répondre à ghuysmans99
Collection CommentÇaMarche.net