|Screen cap straight from Computer > Properties|
Bit Length State
Bit Length Output
String Length (number of 'a's)
The Resulting Hash
Results are Base64 encoded for accuracy and brevity. These are not declared as ASCII strings, but they are built as such. There is the possibility that .NET is doing something to them in the background that makes them Unicode. No tree hashing was used.
The take away from this is: 778MB string in memory, roughly 2 minutes flat for 256-bit state-width regardless of output size, 2 minutes 30 seconds for 512- or 1024-bits regardless of output size.
Complete results after the cut. Sorry for the small font size but this blog has a narrow text window. I encourage all developers also working on this code or the same algorithm from any other language to compare all these results from your own implementations and to comment where there are differences, or if you have timing results for similar tests.