2011-03-31 130 views
29

我正在嘗試用Qt生成一個MD5哈希值。我生成的散列需要與使用其他語言(如PHP)生成的其他標準MD5散列兼容。用Qt生成一個MD5哈希值

此代碼不能給我想要的結果:

QString encodedPass = QString(QCryptographicHash::hash(("myPassword"),QCryptographicHash::Md5)); 

結果是 「TH±搜狐÷Õ¡¯×L?!?」 而不是 「deb1536f480475f7d593219aa1afd74c」。有人能告訴我我做錯了什麼嗎?

回答

71

PHP以十六進制給出給你,Qt以二進制給出。使用QByteArray::toHex將其轉換爲十六進制。

QString blah = QString(QCryptographicHash::hash(("myPassword"),QCryptographicHash::Md5).toHex())