libcrypto: MD5_CTX benutzen



  • Hallo!
    Ich arbeite mich gerade in die Programmierung mit libcrypto ein. Ich versuche dazu, einen String zu hashen (ich benutze libcrypto, da es sehr viele HAsh-Algorithmen unterstützt). Ich muss jedoch jetzt MD5_CTX in einen std::strin umwandeln. Ist das überhaupt möglich (und wenn ja, wie) oder sollte ich gleich eine andere Bibliothek benutzen?

    Danke, Hans



  • unsigned char digest[MD5_DIGEST_LENGTH];
    MD5_Final(digest, &md5Context);
    std::string digestString(reinterpret_cast<char*>(digest));
    


  • #include <openssl/md5.h>
    #include <string>
    #include <sstream>
    
    std::string getMD5HexDigest(const std::string& inputString)
    {
    	unsigned char digest[MD5_DIGEST_LENGTH];
    	MD5(reinterpret_cast<const unsigned char*>(inputString.c_str()), inputString.length(), digest);
    
    	std::ostringstream oss;
    
    	for(int i = 0; i < sizeof(digest); ++i)
    	{
    		oss.width(2);
    		oss.fill('0');
    		oss << std::hex << static_cast<int>(digest[i]);
    	}
    
    	return oss.str();
    }
    


  • Vielen Dank, das hat mir sehr geholfen!

    mfg, Hans


Anmelden zum Antworten