У меня следующая проблема: я пытаюсь вычислить контрольную сумму 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
надеюсь, кто-то может дать мне подсказку.
привет Фабиан