2011-03-31 92 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())