[ itf @ 25.12.2010. 21:33 ] @
Već dobrih pola dana mučim se s ovom Crypto++ bibliotekom i nikako ne mogu skužiti kako izolirati dio koda koji radi hash neke poruke (stringa). Konkretno za gore navedene SHA256/512 algoritme.

Oni su u primjeru dali kako se radi hash datoteke, ali ne i stringa. Nešto sam našao na netu da ide u stilu

Code (cpp):
char cDigest[64];
SHA512 sh;
memset(cDigest, 0, sizeof(cDigest));
sh.Update((BYTE*)"test", strlen("test"));
sh.Final(cDigest);


Ovo čak i prolazi, ali na izlazu dobijem hrpu neformatiranih znakova, no opet, može sve biti potpuno netočno.

Ima li itko primjer za izradu hash-a stringa za SHA256/512? Može za Crypto++, ali i bilo koju drugu biblioteku u kojoj to radi.


EDIT:
Uspio sam rješiti. Postupak je dobar, ali je bilo potrebno upotrijebiti HexEncoder, pa ako će ikome trebati evo kako glasi sve:

Code (cpp):

     char cDigest[64], izhex[64];
     memset(cDigest, 0, sizeof(cDigest));

     SHA512 sh;
     sh.Restart();
     sh.Update((BYTE*)"test123",strlen("test123"));
     sh.Final(cDigest);

     std::string encoded;
     CryptoPP::HexEncoder encoder( new CryptoPP::StringSink( encoded ),
          true /* Uppercase */, 2 /* Grouping */, "" /* Separator */ );
     encoder.Put((const unsigned char*)cDigest, 64,true);
     encoder.MessageEnd();


... izlazni string je encoded.

[Ovu poruku je menjao itf dana 26.12.2010. u 00:51 GMT+1]