जबकि आप ब्रूटफोर्सिंग के बिना सीधे MySQL पासवर्ड पुनर्प्राप्त नहीं कर सकते हैं, तो एक और तरीका हो सकता है - यदि आपने डेटाबेस से कनेक्ट करने के लिए MySQL वर्कबेंच का उपयोग किया है, और क्रेडेंशियल्स को "वॉल्ट" में सहेज लिया है, तो आप सुनहरे हैं।
विंडोज़ पर, क्रेडेंशियल % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat में संग्रहीत हैं - CryptProtectData (बिना किसी अतिरिक्त एंट्रॉपी के)। डिक्रिप्टिंग आसान peasy है:
std::vector decrypt(BYTE *input, size_t length) {
DATA_BLOB inblob { length, input };
DATA_BLOB outblob;
if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
throw std::runtime_error("Couldn't decrypt");
}
std::vector output(length);
memcpy(&output[0], outblob.pbData, outblob.cbData);
return output;
}
या आप स्रोत के लिए यह दान कोडर थ्रेड देख सकते हैं + एक त्वरित और गंदे कार्यान्वयन के निष्पादन योग्य।