//--------------------------------------------------------------------------- UnicodeString __fastcall TConfiguration::BannerHash(const UnicodeString & Banner) { RawByteString Result; Result.SetLength(16); md5checksum( reinterpret_cast<const char*>(Banner.c_str()), Banner.Length() * sizeof(wchar_t), (unsigned char*)Result.c_str()); return BytesToHex(Result); }
UnicodeString TConfiguration::BannerHash(const UnicodeString & Banner) const { RawByteString Result; Result.SetLength(16); md5checksum( reinterpret_cast<const char *>(Banner.c_str()), static_cast<int>(Banner.Length() * sizeof(wchar_t)), reinterpret_cast<uint8_t *>(const_cast<char *>(Result.c_str()))); return BytesToHex(Result); }
void md5_test() { BOOST_CHECK_EQUAL(md5checksum("").size(), 32u); BOOST_CHECK_EQUAL( md5checksum(""), std::string("d41d8cd98f00b204e9800998ecf8427e") ); BOOST_CHECK_EQUAL( md5checksum("a"), std::string("0cc175b9c0f1b6a831c399e269772661") ); BOOST_CHECK_EQUAL( md5checksum("abc"), std::string("900150983cd24fb0d6963f7d28e17f72") ); BOOST_CHECK_EQUAL( md5checksum("message digest"), std::string("f96b697d7cb7938d525a2f31aaf161d0") ); BOOST_CHECK_EQUAL( md5checksum("abcdefghijklmnopqrstuvwxyz"), std::string("c3fcd3d76192e4007dfb496cca67e13b") ); BOOST_CHECK_EQUAL( md5checksum( "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz0123456789"), std::string("d174ab98d277d9f5a5611c2c9f419d9f") ); BOOST_CHECK_EQUAL( md5checksum( "1234567890123456789012345678901234567890" "1234567890123456789012345678901234567890"), std::string("57edf4a22be3c955ac49da2e2107b67a") ); }