QMessageAuthenticationCode 类提供生成基于哈希的消息身份验证代码的办法。 更多...
| 头: | #include <QMessageAuthenticationCode> | 
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) | 
| qmake: | QT += core | 
注意: 此类的所有函数 可重入 .
| QMessageAuthenticationCode (QCryptographicHash::Algorithm method , const QByteArray & key = QByteArray()) | |
| ~QMessageAuthenticationCode () | |
| void | addData (const char * data , qsizetype length ) | 
| void | addData (const QByteArray & data ) | 
| bool | addData (QIODevice * device ) | 
| void | reset () | 
| QByteArray | result () const | 
| void | setKey (const QByteArray & key ) | 
| QByteArray | hash (const QByteArray & message , const QByteArray & key , QCryptographicHash::Algorithm method ) | 
QMessageAuthenticationCode supports all cryptographic hashes which are supported by QCryptographicHash .
To generate message authentication code, pass hash algorithm QCryptographicHash::Algorithm to constructor, then set key and message by setKey () 和 addData () functions. Result can be acquired by result () 函数。
    QByteArray key = "key";
    QByteArray message = "The quick brown fox jumps over the lazy dog";
    ...
    QMessageAuthenticationCode code(QCryptographicHash::Sha256, key);
    code.addData(message);
    code.result().toHex(); // returns "f7bc83f430538424b13298e6aa6fb143ef4d59a14946175997479dbc2d1a3cd8"
					
					Alternatively, this effect can be achieved by providing message, key and method to hash () 方法。
    QMessageAuthenticationCode::hash(message, key, QCryptographicHash::Sha256).toHex();
					
					另请参阅 QCryptographicHash .
[explicit]
						
						QMessageAuthenticationCode::
						
							QMessageAuthenticationCode
						
						(
						
							
								QCryptographicHash::Algorithm
							
						
						method
						, const
						
							
								QByteArray
							
						
						&
						
							key
						
						= QByteArray())
						
					Constructs an object that can be used to create a cryptographic hash from data using method method and key key .
销毁对象。
Adds the first length chars of data to the message.
此函数重载 addData()。
						读取数据,从打开
						
							QIODevice
						
						device
						until it ends and adds it to message. Returns
						
true
						
						若读取是成功的。
					
注意: device must be already opened.
[static]
						
						
							
								QByteArray
							
						
						QMessageAuthenticationCode::
						
							hash
						
						(const
						
							
								QByteArray
							
						
						&
						
							message
						
						, const
						
							
								QByteArray
							
						
						&
						
							key
						
						,
						
							
								QCryptographicHash::Algorithm
							
						
						method
						)
						
					Returns the authentication code for the message message using the key key and the method method .
Resets message data. Calling this method doesn't affect the key.
Returns the final authentication code.
另请参阅 QByteArray::toHex ().
Sets secret key . Calling this method automatically resets the object state.
For optimal performance, call this method only to change the active key, not to set an initial key, as in
QMessageAuthenticationCode mac(method); mac.setKey(key); // does extra work use(mac);
Prefer to pass initial keys as the constructor argument:
QMessageAuthenticationCode mac(method, key); // OK, optimal use(mac);
You can use std::optional to delay construction of a QMessageAuthenticationCode until you know the key:
std::optional<QMessageAuthenticationCode> mac; ~~~ key = ~~~; mac.emplace(method, key); use(*mac);