std::stringstream bestring; __int64 steamID = 76561197996545192; __int8 i = 0, parts[8] = { 0 }; do parts[i++] = steamID & 0xFF; while (steamID >>= 8); bestring << "BE"; for (int i = 0; i < sizeof(parts); i++) { bestring << char(parts[i]); } // I used this md5 library http://www.zedwood.com/article/cpp-md5-function std::cout << md5(bestring.str()) << std::endl;