Вы можете использовать онлайн-инструмент, такой как этот , чтобы вычислить хэш SHA3_256 вашего пароля, и аналогичным образом этот , чтобы вычислить хеш Keccak-256.Он показывает точные результаты, которые вы отобразили в своем вопросе.
Так что Замечание Мартена кажется правильным: поведение, записанное в этой документации, было в какой-то момент введено в ветку 5.8
.Вы можете сами убедиться в истории git файла qcryptographichash.cpp
в ветке под названием 5.8
, где это произошло.Вы также можете видеть, что это было сделано после применения тега v5.8.0
.
Так что если вы вернетесь к версии, помеченной как v5.8.0
, вы получите то же самоеповедение, которое вы имели в 5.4
.
Обновление для ответа на ваш комментарий.
Механизм, описанный в документации, который определяет макрос QT_SHA3_KECCAK_COMPAT
для поддержания обратной совместимостив более старых версиях не поддерживается до 5.8
.Показаны соответствующие различия между ветвями 5.8
и 5.9
(где я обрезал вывод):
git difftool -y -x "diff -y -W 72" 5.8 5.9 -- qcryptographichash.h
enum Algorithm { enum Algorithm {
#ifndef QT_CRYPTOGRAPHICHASH_ONL #ifndef QT_CRYPTOGRAPHICHASH_ONL
Md4, Md4,
Md5, Md5,
#endif #endif
Sha1 = 2, Sha1 = 2,
#ifndef QT_CRYPTOGRAPHICHASH_ONL #ifndef QT_CRYPTOGRAPHICHASH_ONL
Sha224, Sha224,
Sha256, Sha256,
Sha384, Sha384,
Sha512, Sha512,
Sha3_224, |
Sha3_256, | Keccak_224 = 7,
Sha3_384, | Keccak_256,
Sha3_512 | Keccak_384,
> Keccak_512,
> RealSha3_224 = 11,
> RealSha3_256,
> RealSha3_384,
> RealSha3_512,
> # ifndef QT_SHA3_KECCAK_COMPAT
> Sha3_224 = RealSha3_224,
> Sha3_256 = RealSha3_256,
> Sha3_384 = RealSha3_384,
> Sha3_512 = RealSha3_512
> # else
> Sha3_224 = Keccak_224,
> Sha3_256 = Keccak_256,
> Sha3_384 = Keccak_384,
> Sha3_512 = Keccak_512
> # endif
#endif #endif
}; };
Как видите, макрос QT_SHA3_KECCAK_COMPAT
имеет значение только в 5.9
.