Qt / c ++相当于php例程

时间:2014-06-22 04:18:28

标签: 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=

我做错了吗?

1 个答案:

答案 0 :(得分:1)

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;