/// <summary> /// 将写入对象的数据路由到哈希算法以计算哈希值。 /// </summary> /// <param name="array">要计算其哈希代码的输入。</param> /// <param name="ibStart">字节数组中的偏移量,从该位置开始使用数据。</param> /// <param name="cbSize">字节数组中用作数据的字节数。</param> protected override void HashCore(byte[] array, int ibStart, int cbSize) { this.Current = CRC32.CalculateHash(this.Current, this.Table, array, ibStart, cbSize); }
/// <summary> /// 在加密流对象处理完最后的数据后完成哈希计算。 /// </summary> /// <returns>计算所得的哈希代码。</returns> protected override byte[] HashFinal() { byte[] hashValue = CRC32.GetBytesBigEndian(~this.Current); this.HashValue = hashValue; return(hashValue); }