Я создаю SHA1 и CRC32 хэш от обычного текста, используя Crypto ++ Library, как:Invalid CRC32 Hash Generation
#include <cryptopp/filters.h>
#include <cryptopp/hex.h>
#include <cryptopp/sha.h>
#include <cryptopp/crc.h>
#include <string.h>
#include <iostream>
int main()
{
// Calculate SHA1
std::string data = "Hello World";
std::string base_encoded_string;
byte sha_hash[CryptoPP::SHA::DIGESTSIZE];
CryptoPP::SHA().CalculateDigest(sha_hash, (byte*)data.data(), data.size());
CryptoPP::StringSource ss1(std::string(sha_hash, sha_hash+CryptoPP::SHA::DIGESTSIZE), true,
new CryptoPP::HexEncoder(new CryptoPP::StringSink(base_encoded_string)));
std::cout << base_encoded_string << std::endl;
base_encoded_string.clear();
// Calculate CRC32
byte crc32_hash[CryptoPP::CRC32::DIGESTSIZE];
CryptoPP::CRC32().CalculateDigest(crc32_hash, (byte*)data.data(), data.size());
CryptoPP::StringSource ss2(std::string(crc32_hash, crc32_hash+CryptoPP::CRC32::DIGESTSIZE), true,
new CryptoPP::HexEncoder(new CryptoPP::StringSink(base_encoded_string)));
std::cout << base_encoded_string << std::endl;
base_encoded_string.clear();
}
Выходной сигнал я получаю:
0A4D55A8D778E5022FAB701977C5D840BBC486D0
56B1174A
Нажмите любую клавишу, чтобы продолжить. , ,
И из них я подтвердил, что CRC32 неверен по различным интернет-ресурсам, таким как этот: http://www.fileformat.info/tool/hash.htm?text=Hello+World
Я понятия не имею, почему, потому что я создаю CRC32 хэш следуя той же процедуре, Я последовал за SHA1. Есть ли другой способ, или я действительно делаю что-то неправильно здесь?