Edit:This password utilities library has now been substantially upgraded and open-sourced with an MIT license. You can find a .NET 4.0 version of the library and an example graphical interface in a Google Code Mercurial repository.
This is the eighth (and hopefully final) installment in a series about creating a C# password utilities library.
But first, we interrupt our scheduled programming to bring you the latest offender in end-user personal data storage. Sony's Playstation Network and Qriocity services have recently suffered a major intrusion that exposed personal data for its 77 million users. It's not completely clear from their FAQs, but it appears that the user passwords weren't hashed or encrypted, but instead stored in plain text. This makes the Sony rootkit fiasco positively tame in comparison.
Back on topic: all that remains is to write a console program that demonstrates some of the functionality implemented in the password utilities library. The Main method is hopefully self-explanatory.
We start by setting the console so that it can display UTF-8 symbols, a necessity given that this library can generate Unicode passwords. Note that you need to set the console to use a font that can display Unicode characters - I use Lucida Console.
Check the die for modulo bias.
Generate some random passwords and hash them, then display the combined password/hash information entropy.
Generate some passwords, hash them, then verify the password hashes.
You can download a Visual Studio 2005 solution containing the password utilities library and the console test program. I chose VS2005 as the lowest common denominator - you should upgrade as appropriate to your environment.