crc24.cpp
来自「含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种Chec」· C++ 代码 · 共 53 行
CPP
53 行
/************************************************** CRC24 Source File ** (C) 1999-2002 The Botan Project **************************************************/#include <botan/crc24.h>namespace Botan {/************************************************** Update a CRC24 Hash **************************************************/void CRC24::add_data(const byte input[], u32bit length) { u32bit tmp = crc; while(length >= 16) { tmp = TABLE[((tmp >> 16) ^ input[ 0]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 1]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 2]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 3]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 4]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 5]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 6]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 7]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 8]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[ 9]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[10]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[11]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[12]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[13]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[14]) & 0xFF] ^ (tmp << 8); tmp = TABLE[((tmp >> 16) ^ input[15]) & 0xFF] ^ (tmp << 8); input += 16; length -= 16; } for(u32bit j = 0; j != length; j++) tmp = TABLE[((tmp >> 16) ^ input[j]) & 0xFF] ^ (tmp << 8); crc = tmp; }/************************************************** Finalize a CRC24 Hash **************************************************/void CRC24::final_result(byte output[]) { for(u32bit j = 0; j != 3; j++) output[j] = get_byte(j+1, crc); clear(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?