Class CyclicRedundancyCheck32
Provides a CRC-32 implementation of the CRC (Cyclic Redundancy Check) checksum algorithm for 32-bit hash values. This class cannot be inherited.
public sealed class CyclicRedundancyCheck32 : CyclicRedundancyCheck, IHash, IConfigurable<CyclicRedundancyCheckOptions>
- Inheritance
-
CyclicRedundancyCheck32
- Implements
- Inherited Members
Constructors
CyclicRedundancyCheck32(uint, uint, uint, Action<CyclicRedundancyCheckOptions>)
Initializes a new instance of the CyclicRedundancyCheck32 class.
public CyclicRedundancyCheck32(uint polynomial = 79764919, uint initialValue = 4294967295, uint finalXor = 4294967295, Action<CyclicRedundancyCheckOptions> setup = null)
Parameters
polynomialuintThis is a binary value that should be specified as a hexadecimal number. Default is
0x4C11DB7.initialValueuintThis parameter specifies the initial value of the register when the algorithm starts. Default is
0xFFFFFFFF.finalXoruintThis is an W-bit value that should be specified as a hexadecimal number. Default is
0xFFFFFFFF.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.