Everything old is new again [crc-hash is a Node.js Crypto Hash implementation for the CRC algorithm]
Yep, another post about hash functions... True, I could have stopped when I implemented CRC-32 for .NET or when I implemented MD5 for Silverlight. Certainly, sharing the code for four versions of ComputeFileHashes could have been a good laurel upon which to rest.
But then I started using Node.js, and found one more hash-oriented itch to scratch. :)
From the project page:
Node.js's Crypto module implements the Hash class which offers a simple Stream-based interface for creating hash digests of data. The createHash function supports many popular algorithms like SHA and MD5, but does not include older/simpler CRC algorithms like CRC-32. Fortunately, the crc package in npm provides comprehensive CRC support and offers an API that can be conveniently used by a Hash subclass.
crc-hashis a Crypto Hash wrapper for the
crcpackage that makes it easy for Node.js programs to use the CRC family of hash algorithms via a standard interface.
With just one (transitive!) dependency,
crc-hash is lightweight.
Because it exposes a common interface, it's easy to integrate with existing scenarios.
crc, it offers support for all the popular CRC algorithms.
You can learn more on the
crc-hash npm page or the
crc-hash GitHub page.
- One of the great things about the Node community is the breadth of packages available.
In this case, I was able to leverage the comprehensive
crcpackage by alexgorbatchev for all the algorithmic bits.
- After being indifferent on the topic of badges, I discovered shields.io and its elegance won me over.
You can see the five badges I picked near the top of
README.mdon the npm/GitHub pages above.
- Free hash [A reusable CRC-32 HashAlgorithm implementation for .NET]
- Thank goodness for reference implementations [Low-overhead .NET MD5 implementation (source code and tests) works great on Silverlight!]
- Gratuitous platform support [ComputeFileHashes works on the command-line, on WPF, on Silverlight, and via ClickOnce!]