[CryptoPP] SHA1-Hash von wstring erstellen

Raven280438

Erfahrenes Mitglied
Hi,

ich möchte mit CryptoPP einen SHA1-Hash eines std::wstring erzeugen.
Leider kommt bei meinem Code nicht das gleiche raus, wie bei einem SHA1-Encoder im Internet.
Was mache ich falsch?

Code:
    std::wstring input = L"Hallo Welt";

    byte buffer[CryptoPP::SHA1::DIGESTSIZE];

    const byte* inp = reinterpret_cast<const byte*>(input.c_str());

    CryptoPP::SHA1().CalculateDigest(buffer,inp,sizeof(inp));

    std::string hash;
    CryptoPP::StringSource ss(buffer, sizeof(buffer), true,
    new CryptoPP::HexEncoder(
        new CryptoPP::StringSink(hash)
    )
    );


Gruß
 
Hi,

danke für die Antwort.
Leider kommt bei dem Hash immernoch nicht das raus, was eigendlich rauskommen soll.

Ich programmiere einen Login, bei dem ich den Hash des eingegebenen Passwort mit dem aus der Datenbank vergleichen will.



Gruß
 
Hi.

Welches Encoding wurde denn bei der Berechnung des Passwort Hashes in der Datenbank verwendet?

Sind verschiedene Plattformen im Spiel? Windows / Linux / Java / C++?

Gruß
 
Hi,

die Berechnung des Hashes wurde mit PHP (UTF8) gemacht.

PHP läuft auf Ubuntu, ich programmiere auf WinXP.

In C# hab ich das Problem aber nicht.



Gruß
 
UTF-8 ist kein Widechar Encoding, sondern ein Multibyte-Encoding.

Du mußt also erstmal deinen wstring in einen UTF-8 string konvertieren.
 
Zurück