MD5 hashes in C# – benchmark and speed optimization
For a current project I must generate a large number of MD5 hashes. I explicitly don’t want to discuss the meaning and security of MD5 hashes in this article, but rather concern myself with the question on how to generate MD5 hashes as fast as possible using C#.
The. NET Framework itself provides a class for creating MD5 hashes, which after the first attempts seemed a little slow to me. So I began to search for alternative classes and/or functions and came across a class of Syed Faraz Mahmood. His class is a manual implementation of the RFC 1321 (“The MD5 Message-Digest Algorithm”). The class can be downloaded for free on his blog.
The test environment
For the test I created six lists (List<int>) with many different numbers. Each with 1,000, 10,000, 50,000, 100,000, 1,000,000 and 10,000,000 elements.
All lists were run complete for both methods (MD5 .NET framework implementation & manual MD5 implementation) and […]
In that article I provided a small C# based library that allows you to easily access the thesaurus web service of the Wortschatz Leipzig project.
At the weekend I was looking for a way to find synonyms for a given word. After a quick search on the net I came across the Openthesaurus project, which offers an offline database of synonyms for download. However, I wanted to have a second source for comparison. After further searching, I went to the thesaurus of the “Wortschatz Leipzig” project. Although they offer no offline synonym database, but a free webservice.
When I once again recently wanted to bring a few thoughts into bits and bytes, I realized that I could not download neither updates nor Nuget packages from the Visual Studio 2012. The Visual Studio was absolutely convinced that my computer had no Internet connection. But this could not be, after all, because every other application still got connected.