php - Qt/c++相当于php例程

标签 php c++ qt porting

我在Qt中有如下代码

    QString message = "somemessage";
    QString key = "somekey";
    QString hashed = QMessageAuthenticationCode::hash(message,
                                                   key,
                                                 QCryptographicHash::Sha256).toBase64();

输出

8b0CA+VJBGMPVqKkygWeKuSVuquLc1vi/k9fPR8ZhXg=

在 php 中我会做这样的事情:

    $msg = "somemessage";
    $key = "somekey";
    base64_encode(hash_hmac('sha256',$msg,$key,true));

它输出了我正在寻找的正确结果:

olsHfSnlLo5cpuBqSzfzERE3Hma0kFSo9YgCacOqCCw=

我做错了什么吗?

最佳答案

QMessageAuthenticationCode 的 Qt 文档说参数应该在 QByteArray 中。你是如何设法编译这段代码的?我用您的代码(用于 Qt)编写了一个小程序,并设法为 php 代码获得了相同的结果。 php code result

这段代码给我的结果与上面的 php 代码结果相同。

QByteArray ke = "somekey";
QByteArray msg = "somemessage";
QString hashed = QMessageAuthenticationCode::hash(msg,
                                        ke,
                                        QCryptographicHash::Sha256).toBase64();
qDebug() << hashed;

关于php - Qt/c++相当于php例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24348080/

相关文章:

php - 使用PHP进行网站爬取

php - 如何在关闭浏览器选项卡时清除 session ?

php - 调用未定义的方法 PDO::fetch()

php - 如何检测图像中的框并将它们作为单独的文件拉出?

c++ - 使用 zlib C++ 对 PDF 进行收缩和膨胀

python - 如何测试更快的 GUI 应用程序?

python - 如何重新实现Qt生成的Ui_MainWindow

c++ - 在 QT Creator 中如何将 CGAL 包含到 QT 项目中?

c++ - VS2010 Beta 2中的C++多目标

c++ - 类继承 : static members and virtual methods