1
我正在研究C++類,並且我們正在學習MD5哈希函數。我遇到這個問題,但是,如果我這樣做:MD5哈希函數輸出垃圾
string input = "testInput";
unsigned char *toHash = new unsigned char[input.size()+1];
strcpy((char*)toHash, input.c_str());
unsigned char output[MD5_DIGEST_LENGTH];
MD5(toHash, input.size(), output);
cout << hex << output << endl;
但我總是得到一些奇怪的亂碼,而不是我要找的,類似的數字/字母的長字符串。這是怎麼回事?
〜 低級別C++很困惑
散列函數生成包含所述散列二進制串;您需要將其轉換爲十六進制或其他您想要使用的表示。 – 2013-02-12 03:19:38
好吧,但它生成的二進制字符串到無符號字符數組的權利?我不明白爲什麼這些位不會被解釋爲無符號字符的時候,這會讓你通過cout輸出它們...... – user1288167 2013-02-12 03:22:46
「垃圾」也被稱爲md5摘要。 :-) – asveikau 2013-02-12 03:24:56