Class CyclicRedundancyCheck64
Provides a CRC-64 implementation of the CRC (Cyclic Redundancy Check) checksum algorithm for 64-bit hash values. This class cannot be inherited.
public sealed class CyclicRedundancyCheck64 : CyclicRedundancyCheck, IHash, IConfigurable<CyclicRedundancyCheckOptions>
- Inheritance
-
CyclicRedundancyCheck64
- Implements
- Inherited Members
Constructors
CyclicRedundancyCheck64(ulong, ulong, ulong, Action<CyclicRedundancyCheckOptions>)
Initializes a new instance of the CyclicRedundancyCheck64 class.
public CyclicRedundancyCheck64(ulong polynomial = 4823603603198064275, ulong initialValue = 0, ulong finalXor = 0, Action<CyclicRedundancyCheckOptions> setup = null)
Parameters
polynomialulongThis is a binary value that should be specified as a hexadecimal number. Default is
0x42F0E1EBA9EA3693.initialValueulongThis parameter specifies the initial value of the register when the algorithm starts. Default is
0x0000000000000000.finalXorulongThis is an W-bit value that should be specified as a hexadecimal number. Default is
0x0000000000000000.setupAction<CyclicRedundancyCheckOptions>The CyclicRedundancyCheckOptions which may be configured.
Methods
ComputeHash(byte[])
Computes the hash value for the specified byte[].
public override HashResult ComputeHash(byte[] input)
Parameters
inputbyte[]The byte[] to compute the hash code for.
Returns
- HashResult
A HashResult containing the computed hash code of the specified
input.
Remarks
Inspiration and praises goes to http://www.sunshine2k.de/articles/coding/crc/understanding_crc.html
PolynomialIndexInitializer(byte)
Returns the initial value for the specified index of the polynomial LookupTable.
protected override ulong PolynomialIndexInitializer(byte index)
Parameters
indexbyteThe index of the array of polynomial values ranging from 0 to 255.
Returns
- ulong
The initial value for the specified
index.
PolynomialSlotCalculator(ref ulong, ulong)
Computes the polynomial checksum value in steps of 8 (0-7) x 256 (0-255) giving a total of 2048 times.
protected override void PolynomialSlotCalculator(ref ulong checksum, ulong polynomial)
Parameters
checksumulongThe checksum that is iterated 8 times (0-7) in 256 steps (0-255).
polynomialulongThe polynomial value.