关于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只支持普通字符串?




...全文
196 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdwx 2013-07-23
  • 打赏
  • 举报
回复
QML的md5没用过,倒是用过Qt的c++的MD5(CryptographicHash),得到的结果和别的工具是一样的,试过很多次了,下载来的exe、iso什么的,验证结果都正确。
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于opencv传统图像处理算法实现物体尺寸测量系统C++源码+项目说明+详细注释.zip Qt Object Measure ==== - 使用 C++ 和 OpenCV 实现一个具有视频捕捉、图像显示、尺寸测量及结果显示和输出等的桌面应用,实现对圆形物体的圆心、直径和矩形物体的长和宽尺寸测量,包括相应定位及标定功能。 - 实现了在 QML 使用 OpenCV 画面显示,在 Qt 提供的定时器触发断时,VideoCapture 读取 Mat 之后转换为 OpenGL 的纹理,交给 Qt 提供的 QQuickFramebufferObject (fbo) 组件渲染到客户端。 - OpenCV 测量功能实现参考 ~~~ ## 开发环境 1. 编程语言:C++ 11 2. 编译器:mingw730_64 3. 技术选型:Qt 5.12.12 + OpenCV 4.5.2 + OpenGL 3.3 4. 编程环境:CLion 2020.3.4 + Window 10 ## 项目文件 ~~~ ├── src │ └── assets // 静态资源文件 │ └── common // 宏定义 │ └── component // 注入组件 │ └── controller // 控制层 │ └── entity // 数据体 │ └── model // 注入模型 │ └── service // 图像处理 │ └── system // 系统服务 │ └── util // 工具类 │ └── views // 程序入口 │ └── screen // 页面 │ └── widget // 通用 UI 组件 │ └── main.qml // UI 入口 │ └── main.c // 程序入口 │ └── resource.qrc // 资源配置文件 │ └── CMakeLists.txt ├── CMakeLists.txt ├── README.md ~~~ ## 示例 ......

16,227

社区成员

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

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