このページでは

QPasswordDigestor Namespace

QPasswordDigestor ネームスペースには、ハッシュやキーを生成するために使用できる関数が含まれています。詳細...

ヘッダー: #include <QPasswordDigestor>
CMake: find_package(Qt6 REQUIRED COMPONENTS Network)
target_link_libraries(mytarget PRIVATE Qt6::Network)
qmake: QT += network

機能

QByteArray deriveKeyPbkdf1(QCryptographicHash::Algorithm algorithm, const QByteArray &data, const QByteArray &salt, int iterations, quint64 dkLen)
QByteArray deriveKeyPbkdf2(QCryptographicHash::Algorithm algorithm, const QByteArray &data, const QByteArray &salt, int iterations, quint64 dkLen)

詳細な説明

関数のドキュメント

QByteArray QPasswordDigestor::deriveKeyPbkdf1(QCryptographicHash::Algorithm algorithm, const QByteArray &data, const QByteArray &salt, int iterations, quint64 dkLen)

RFC 8018 のセクション 5.1 で定義されている PBKDF1 アルゴリズムを使用して計算されたハッシュを返します。

この関数は、data とsalt を受け取り、指定されたハッシュ関数algorithm を使用して、iterations 回の反復処理を行い、ハッシュ化を行います。結果のハッシュがdkLen より長い場合、返される前に切り捨てられます。

この関数は SHA-1 および MD5 のみをサポートしています!SHA-1 を使用する場合の出力サイズの上限は 160 ビット(20 バイト)、MD5 を使用する場合は 128 ビット(16 バイト)です。dkLen にこの値を超える値を指定すると、警告が表示され、空のQByteArray が返されます。 この制限をプログラム上で確認するには、QCryptographicHash::hashLength を使用できます。なお、salt の長さは常に8バイトでなければなりません!

注:この関数はレ ガシーアプリケーションでの使用を目的として提供されており、すべての新しいアプリケーションではPBKDF2 の使用が推奨されます。

関連項目 :deriveKeyPbkdf2 、QCryptographicHash 、およびQCryptographicHash::hashLengthも参照してください 。

QByteArray QPasswordDigestor::deriveKeyPbkdf2(QCryptographicHash::Algorithm algorithm, const QByteArray &data, const QByteArray &salt, int iterations, quint64 dkLen)

RFC 8018 の5.2 節で定義されている PBKDF2 アルゴリズムを使用して、鍵を導出する。

この関数は、data およびsalt を受け取り、その後、Xをalgorithm とするHMAC-Xを繰り返し適用します。内部では、少なくともdkLen バイト分が計算されるまで中間結果を最終出力に連結し、連結が必要になるたびにHMAC-Xをiterations 回実行します。 HMAC-Xが実行される総回数は、iterations 、dkLen 、およびalgorithm に依存し、iterations * ceil(dkLen / QCryptographicHash::hashLength(algorithm)) として計算できます。

deriveKeyPbkdf1 、QMessageAuthenticationCode 、およびQCryptographicHashも参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.