关于qml 中的Qt.md5 的应用范围

lyyscf 2013-07-23 11:51:13
最近研究qml时发现一个奇怪的问题
在qml1中

var tmp="\x7d\x7e\x7f\x80";//注意 tmp.charCodeAt(3)=128 > 127
tmp=Qt.md5(tmp);
console.log(tmp);


在qml2中
var tmp="\x7d\x7e\x7f\x80";//
test.md5();//调用QCryptographicHash来计算


test.cpp中
void Test::md5(QString s)
{
QByteArray tmp;
tmp.append(s);
qDebug()<<tmp.toHex();// 7d7e7f80
QCryptographicHash md(QCryptographicHash::Md5);
md.addData(tmp);
qDebug()<<md.result().toHex();
}


这里种方式的结果既然是不一样的 ,
但是如果 "\x7d\x7e\x7f\x80" 里的 \x80 改小
或里面的16进制数都小于 128 结果却是一样的

用其它求MD5值的工具,与QCryptographicHash方式的计算结果一样
求解:
Qt.md5 对于求解的源中包含 大于 127的"字符"时 是否有bug,或根本不支持,
或者说Qt.md5只支持普通字符串?




...全文
247 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdwx 2013-07-23
  • 打赏
  • 举报
回复
QML的md5没用过,倒是用过Qt的c++的MD5(CryptographicHash),得到的结果和别的工具是一样的,试过很多次了,下载来的exe、iso什么的,验证结果都正确。

16,817

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧