#include #include #include #include using namespace std; int main() { string input; cout << "Initializing" << endl << "Input: "; cin >> input; md5_ctx ctx; md5_init(&ctx); bool found = false; unsigned long long n = 1; while (!found) { string data = input + to_string(n); size_t len_total = data.length(); md5_update(&ctx, len_total, (uint8_t*) data.c_str()); uint8_t result[MD5_DIGEST_SIZE]; md5_digest(&ctx, MD5_DIGEST_SIZE, result); bool has_non_zero = false; if (result[0] || result[1] || (result[2] & 0xf0)) { has_non_zero = true; } if(!has_non_zero) { found = true; cout << "Result: " << n << endl; } n++; } }