Вы можете использовать код, на который вы ссылаетесь. HashAlgorithm просто используется в качестве интерфейса, и вы можете отбросить его, не нанося ущерба функциональности самой реализации CRC.
Изменить "защищенное переопределение void HashCore (буфер byte [], int start, int length)"
в "public void CalcCrc32 (буфер byte [], int start, int length)".
public uint CrcValue должен вернуть crcValue без изменений.
Отбросьте все остальные методы и свойства.