我有以下问题:我正在尝试使用 计算数据块的 adler32 校验和Crypto++
,但在将 byte[4] 数组输出转换为 uint32_t 后得到错误的校验和。
这个带有 crc32 的函数可以正常工作:
CryptoPP::CRC32 crc;
byte digest[CryptoPP::CRC32::DIGESTSIZE];
crc.CalculateDigest(digest, (const byte*)pData.data(), pData.size());
uint32_t checksum = *(uint32_t*)digest; //this works fine
但计算 adler32 的函数返回无效值:
CryptoPP::Adler32 adler;
byte digest[CryptoPP::Adler32::DIGESTSIZE];
adler.CalculateDigest(digest, (const byte*)pData.data(), pData.size());
uint32_t checksum = *(uint32_t*)digest; //this returns a invalid value
希望有人能给我一个提示。
问候费边