Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

SHA256/512 implementacija

[es] :: C/C++ programiranje :: SHA256/512 implementacija

[ Pregleda: 1447 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon SHA256/512 implementacija25.12.2010. u 21:33 - pre 102 meseci
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]
 
Odgovor na temu

[es] :: C/C++ programiranje :: SHA256/512 implementacija

[ Pregleda: 1447 | Odgovora: 0 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.