我有这样一段代码:
void SHAPresenter::hashData(QString data)
{
QCryptographicHash* newHash = new QCryptographicHash(QCryptographicHash::Sha3_224);
newHash->addData(data.toUtf8());
QByteArray hashResultByteArray = newHash->result();
setHashedData(QString(hashResultByteArray.toHex()));
delete newHash;
}
Run Code Online (Sandbox Code Playgroud)
根据Qt规范,QCryptographicHash :: Sha3_224应该"生成一个SHA3-224哈希值.在Qt 5.1中引入".我想比较该代码的结果与其他来源的结果,以检查我是否以正确的方式放置数据.我找到了网站:https: //emn178.github.io/online-tools/sha3_224.html所以我们在两种情况下都有SHA3_224.问题是第一个会从"test"生成这样一个字节串:
3be30a9ff64f34a5861116c5198987ad780165f8366e67aff4760b5e
Run Code Online (Sandbox Code Playgroud)
第二个:
3797bf0afbbfca4a7bbba7602a2b552746876517a7f9b7ce2db0ae7b
Run Code Online (Sandbox Code Playgroud)
根本不相似.但也有一个网站做"Keccak-224":https://emn178.github.io/online-tools/keccak_224.html
结果是:
3be30a9ff64f34a5861116c5198987ad780165f8366e67aff4760b5e
Run Code Online (Sandbox Code Playgroud)
我知道SHA3是基于Keccak的功能 - 但这里的问题是什么?这两个实现中的哪一个以适当的方式遵循NIST FIPS 202,我们如何知道?