使用boost庫實現的CRC64示例

網上比較多的CRC16,CRC32校驗實現,但CRC64卻很難找,最近也有用到,因此特地地寫一個CRC64示例分享給你們。

示例

#include <boost/crc.hpp>
string CRC64(const string &inputStr)
{
   boost::crc_optimal<64, 0x42F0E1EBA9EA3693,
                      0xffffffffffffffff, 0xffffffffffffffff,
                      false, false> crc;

   crc.process_bytes(str.c_str(), str.size());

   char crcStr[128] = {0};
   sprintf_s(crcStr, 128, "%016llx", crc.checksum());
   return crcStr;
}

檢驗

  • 位數: 64bits
  • 係數(除數多項式的最小系數): 0x42F0E1EBA9EA3693
  • xor_in(多項式餘數的初始狀態): 0xffffffffffffffff
  • xor_out(多項式餘數的輸出掩碼): 0xffffffffffffffff
  • reflected_in(反射輸入狀態): false
  • reflected_out(反射輸出狀態): false
  • 輸入值("123456789") -> 輸出值"62ec59e3f1a4f00a"

參考

https://www.boost.org/doc/lib...
https://stackoverflow.com/que...code

相關文章
相關標籤/搜索