Avatar billede telep Nybegynder
28. december 2005 - 16:01 Der er 30 kommentarer og
2 løsninger

input: string - output: MD5-hash

Hej,


Nogen der kan hælpe mig med at få genereret en md5 hash udfra en string.

Jeg bruger Visual C++.


Mvh
Telep
Avatar billede arne_v Ekspert
28. december 2005 - 16:30 #1
find noget færdigt kode til det

du kan bl.a. finde noget C kode her:

http://www.freesoft.org/CIE/RFC/1321/12.htm

du skal bruge de 3 filer:

    global.h -- global header file

    md5.h -- header file for MD5

    md5c.c -- source code for MD5
Avatar billede telep Nybegynder
29. december 2005 - 09:49 #2
vil du hjælpe mig med at få det til at spille?
Avatar billede telep Nybegynder
29. december 2005 - 09:50 #3
Avatar billede telep Nybegynder
29. december 2005 - 10:08 #4
når jeg indeholder md5c.c i mit projekt får jeg følgende fejl:

c:\appTest\md5c.c(315): fatal error C1010: unexpected end of file while looking for precompiled header directive
Avatar billede arne_v Ekspert
29. december 2005 - 10:21 #5
enten skal du putte en include af stdafx.h ind eller så skal du slå brugen
af den fra i opsætning (det er en MS C/C++ specialitet)
Avatar billede telep Nybegynder
29. december 2005 - 10:27 #6
hvor skal stdafx.h includes?
Avatar billede telep Nybegynder
29. december 2005 - 10:52 #7
får også denne fejl i md5c.c:

c:\appTest\md5c.c(28): fatal error C1853: 'Debug/appTest.pch' precompiled header file is from a previous version of the compiler, or the precompiled header is C++ and you are using it from C (or vice versa)
Avatar billede telep Nybegynder
29. december 2005 - 11:15 #8
HJÆÆÆÆLP!
Avatar billede arne_v Ekspert
29. december 2005 - 12:07 #9
suk

fjern den include stdafx.h igen og find det sted i options hvor du kan slå precompiled
header files fra
Avatar billede telep Nybegynder
29. december 2005 - 12:39 #10
hvorfor sukker du?
Avatar billede telep Nybegynder
29. december 2005 - 12:55 #11
det kan jeg sgu  ikke finde...

tis
Avatar billede arne_v Ekspert
29. december 2005 - 13:01 #12
fordi det er et af de tilfælde hvor IDE'en som skulel gøre det nemmere
for en i virkeligheden gør det sværere
Avatar billede arne_v Ekspert
29. december 2005 - 13:02 #13
så prøv og opret md5c.cpp og copy paste koden over i den og se om du kan
få den til at compile (med include stdafx.h igen)
Avatar billede telep Nybegynder
29. december 2005 - 13:49 #14
vi er enige om, at stdafx.h skal indeholde:

#include "MD5.h"
#include "global.h"

men disse to skal ikke være inkluderet i selve projektet?

og så stal der i md5c.c være inkluderet stdafx.h
Avatar billede telep Nybegynder
29. december 2005 - 13:58 #15
Mange fejl:

c:\Udvikling\g4SoftPhone\G4SoftPhone\md5c.cpp(105): error C2065: 'context' : undeclared identifier

_________________________

c:\Udvikling\g4SoftPhone\G4SoftPhone\md5c.cpp(106): error C2182: 'MD5Init' : illegal use of type 'void'

_________________________

c:\Udvikling\g4SoftPhone\G4SoftPhone\md5c.cpp(106): error C2365: 'MD5Init' : redefinition; previous definition was a 'function'
        c:\Udvikling\g4SoftPhone\G4SoftPhone\MD5.h(46) : see declaration of 'MD5Init'

_________________________

c:\Udvikling\g4SoftPhone\G4SoftPhone\md5c.cpp(106): error C2146: syntax error : missing ';' before identifier 'MD5_CTX'

_________________________

c:\Udvikling\g4SoftPhone\G4SoftPhone\md5c.cpp(106): fatal error C1004: unexpected end of file found
Avatar billede telep Nybegynder
29. december 2005 - 17:00 #16
Jeg vil være yderst taknemmelig for noget hjælp her...
Avatar billede arne_v Ekspert
29. december 2005 - 18:22 #17
jeg kan prøve selv senere i aften
Avatar billede fleniels Nybegynder
30. december 2005 - 05:59 #18
Hvor har du i stdafx.h included:

#include "MD5.h"
#include "global.h"

Hvis du har gjort det udenfor #if/#endif i stdafx.h kan det være et problem der udløser C1010 fejlen (+ en masse flere)
Avatar billede telep Nybegynder
30. december 2005 - 09:48 #19
nogen der har noget?


fleniels: har slet ikke if-endif i stdafx.h
Avatar billede telep Nybegynder
30. december 2005 - 11:41 #20
HELP!

Jeg har prøvet en millard forskellige ting nu...

PLZ: somebody help me!
Avatar billede telep Nybegynder
30. december 2005 - 15:13 #21
arne_v: er du blevet væk?

selvfølgelig fair nok hvis du ikke gider mere...
Avatar billede arne_v Ekspert
30. december 2005 - 16:21 #22
jeg fik ikke tid i går aftes

sorry

måske i aften

men jeg har lidt travlt
Avatar billede fleniels Nybegynder
30. december 2005 - 17:03 #23
prøv at sende mig source på:
    global.h -- global header file
    md5.h -- header file for MD5
    md5c.c -- source code for MD5

Jeg kan ikke åbne linket for oven
Avatar billede arne_v Ekspert
30. december 2005 - 17:48 #24
de 3 filer kan findes en million steder - det er reference kode for RFC 1321
Avatar billede arne_v Ekspert
30. december 2005 - 17:48 #25
men det virker hos mig i Visual C++ 2005 Express !
Avatar billede arne_v Ekspert
30. december 2005 - 17:50 #26
new project
kør wizard (husk at fjern kryds i precompiled headers, jeg valgte win32 console app men dte burde ikke betyde noget)

tilføj den ene .c og de to .h filer til projektet

tast noget test kode ind i det C++ program som wizarden har genererer
Avatar billede arne_v Ekspert
30. december 2005 - 17:50 #27
min test kode kom til at se ud som følger:

// MD5.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <cstring>
#include <iostream>

using namespace std;

extern "C"
{
#define PROTOTYPES 1
#include "global.h"
#include "md5.h"
}

char hexhash[33];

char *MD5Hash(char *data, int len)
{
  MD5_CTX ctx;
  MD5Init(&ctx);
  MD5Update(&ctx, (unsigned char *)data, len);
  char hash[16];
  MD5Final((unsigned char *)hash, &ctx);
  for(int j=0; j<16; j++) sprintf(hexhash+2*j,"%02X",0xFF & hash[j]);
  return hexhash;
}

int _tmain(int argc, _TCHAR* argv[])
{
    char * s = "Dette er en lille test !";
    cout << MD5Hash(s, (int)strlen(s)) << endl;
    return 0;
}
Avatar billede arne_v Ekspert
30. december 2005 - 17:52 #28
jeg kan godt ligge hele projektet op hvis det skulle være men der er intet i det

jeg tror at tricket består i:

1)  fjerne krydset i brug af precompiled headers når man laver projektet

2)  få md5c.c ind som det og ikke md5c.cpp

3)  den rigtige include i dit C++ program

extern "C"
{
#define PROTOTYPES 1
#include "global.h"
#include "md5.h"
}
Avatar billede telep Nybegynder
19. januar 2006 - 16:17 #29
Jeg har ikke glemt Jer, men der kom lige noget andet i vejen...
Avatar billede telep Nybegynder
23. januar 2006 - 10:00 #30
nå, problemet blev løst på anden vis...

Dem der vil have point svarer
Avatar billede arne_v Ekspert
23. januar 2006 - 13:55 #31
ok
Avatar billede telep Nybegynder
24. januar 2006 - 10:36 #32
tar lidt selv oss...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester